Ant 學習資源

来源:互联网 发布:手机映射软件下载 编辑:程序博客网 时间:2024/06/05 20:27

網路資源

官方文件
http://ant.apache.org/manual/index.html
各個task的意義 Ant Tasks > Core Tasks

良葛格教學文件
1.什麼是 Ant?
http://www.javaworld.com.tw/jute/post/view?bid=11&id=48098&tpg=1&ppg=1&sty=0&age=0#48098

2.設定 Ant
http://www.javaworld.com.tw/jute/post/view?bid=11&id=90887&tpg=1&ppg=1&sty=0&age=0#90887

3.瞭解Ant buildfile
http://www.javaworld.com.tw/jute/post/view?bid=11&id=48100&tpg=1&ppg=1&sty=0&age=0#48100

4.Ant常用任務標籤
http://www.javaworld.com.tw/jute/post/view?bid=11&id=48101&sty=2&keywords=ant%E5%85%A5%E9%96%80

5.使用Ant建構實際範例
http://www.javaworld.com.tw/jute/post/view?bid=11&id=48102&sty=2&keywords=ant%E5%85%A5%E9%96%80

6.路徑(path)參考
http://www.javaworld.com.tw/jute/post/view?bid=11&id=52442&sty=2&keywords=ant%E5%85%A5%E9%96%80

7.條件式目標
http://www.javaworld.com.tw/jute/post/view?bid=11&id=48105&sty=2&keywords=ant%E5%85%A5%E9%96%80
補充:

1<?xml version="1.0"?> 2<project name="Learning Hibernate" default="compile" basedir="."3  <target name="prepare" description="Sets up build structures" if="haha"4    <delete dir="${class.root}"/> 5    <mkdir dir="${class.root}"/> 6  </target> 7    <target name="compile" depends="prepare"8    <javac srcdir="${source.root}" 9           destdir="${class.root}" 10           debug="on" 11           optimize="off" 12           deprecation="on">    13    </javac>            14  </target> 15</project> 
view plain | print | ?


條件是設定在prepare這個target,因此若直接執行ant,因為沒有加上參數 ant -Dhaha=true ,所以prepare這個target不會被執行,但是compile target仍然會被執行喔!


8.調用其它buildfile
http://www.javaworld.com.tw/jute/post/view?bid=11&id=48106&sty=2&keywords=ant%E5%85%A5%E9%96%80

9.自動化建構與測試 - Ant 結合 JUnit
http://www.javaworld.com.tw/jute/post/view?bid=11&id=48107&sty=2&keywords=ant%E5%85%A5%E9%96%80
補充:
如果您要讓Ant能支援JUnit,建議您直接將JUnit的junit.jar放置在Ant的lib目錄,並記得改變CLASSPATH中原先有關於JUnit的設定,例如:%ANT_HOME/lib/junit.jar,雖然也有其它的方式可以設定,但這是最快最簡單的方法。


安裝
1.下載檔案 http://ant.apache.org/bindownload.cgi
2.解壓縮至C:/Program Files/
3.設定系統變數 ANT_HOME = C:/Program Files/apache-ant-1.6.2;Path = ;%ANT_HOME%/bin;
4.下cmd指令 ant -version有成功設定OK


執行範例

build.xml

1<?xml version="1.0"?> 2<project name="Learning Hibernate" default="run" basedir="."3  <property name="source.root" value="src"/> 4  <property name="class.root" value="classes"/> 5  <path id="project.class.path"6      <pathelement location="${class.root}" /> 7  </path> 8  <target name="prepare" description="Sets up build structures"9    <delete dir="${class.root}"/> 10    <mkdir dir="${class.root}"/> 11  </target> 12   <target name="compile" depends="prepare"13    <javac srcdir="${source.root}" 14           destdir="${class.root}" 15           debug="on" 16           optimize="off" 17           deprecation="on">   18    </javac>           19   </target> 20 <target name="run" description="Run a Hibernate sample" depends="compile"21    <java classname="momopack.HelloWorld" fork="true">     22       <classpath refid="project.class.path"/> 23    </java> 24  </target> 25</project> 
view plain | print | ?



1根據設定在cmd下ant時會執行名稱為run的target

1<project name="Learning Hibernate" default="run" basedir="."
view plain | print | ?


2.在執行該target前會先執行相關depend的target,因此實際執行的順序為prepare > compile > run

1<target name="run" description="Run a Hibernate sample" depends="compile"2<target name="compile" depends="prepare"
view plain | print | ?


3.classpath正確無誤的話便可看到console後印出"Hello World!!"


結合Junit

安裝
1.必須另外把junit.jar放到 ant/lib下


執行範例

build.xml

1<?xml version="1.0"?> 2<project name="Learning Hibernate" default="compile" basedir="."3  <property name="source.root" value="src"/> 4  <property name="class.root" value="classes"/> 5  <property name="lib.dir" value="lib"/> 6  <property name="report.dir" value="unittestreport"/> 7  <path id="project.class.path"8      <pathelement location="${class.root}" /> 9      <fileset dir="${lib.dir}"10        <include name="*.jar"/> 11      </fileset>     12  </path> 13  <target name="prepare" description="Sets up build structures"14    <delete dir="${class.root}"/> 15    <delete dir="${report.dir}"/> 16    <mkdir dir="${class.root}"/> 17    <mkdir dir="${report.dir}"/>   18  </target> 19  <target name="compile" depends="prepare"20    <javac srcdir="${source.root}" 21           destdir="${class.root}" 22           debug="on" 23           optimize="off" 24           deprecation="on">         25    </javac>               26  </target> 27  <target name="test" depends="compile"28        <junit printsummary="yes">    29            <formatter type="xml"/> 30            <test name="test.tatung.util.StrUtilTest" todir="${report.dir}"/> 31            <classpath refid="project.class.path"/> 32        </junit> 33   </target> 34    <target name="report" depends="test"35        <junitreport todir="${report.dir}"36            <fileset dir="${report.dir}"37                <include name="TEST-*.xml"/> 38            </fileset> 39            <report format="frames" todir="${report.dir}/html"/> 40        </junitreport> 41    </target> 42</project>  
view plain | print | ?





問題排除
如task執行時出現OutOfMenory錯誤,則可嘗試加大jvm的記憶體使用量

1<target name="compile" description="compile *.java to *.class" depends="initiate"2        <echo message="compile *.java ..." /> 3        <javac fork="true" memoryInitialSize="512m" memoryMaximumSize="512m"4               destdir="${basedir}/classes" 5               srcdir="${java.src.dir}"6            <classpath refid="project.class.path"/> 7        </javac> 8</target> 
view plain | print | ?