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 | ?