版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/1494381
用Ant建構腳本(5)
六、Ant相關問題指南
如果你的Ant不能工作,首先可能是Ant的版本問題,其次就是你的配置有問題。可以從以下方面來解決:
1、檢查你的環境變量。Ant_HOME和JAVA_HOME設定是否正确?
2、未設定CLASSPATH?Ant不需要定義CLASSPATH來工作。
3、确認你的JRE/ext中沒有那些不可用的jar檔案或者其它的XML解析器。
4、你的路徑設定是否正确?包含Ant沒有?JDK/bin呢?你測試過嗎?如果你在使用Jikes,那麼它的路徑設定沒?
5、你正在用Ant的哪一個版本?其它的應用程式或者自帶了一份Ant的拷貝,注意版本之間的沖突。
6、是否你運作一個任務失敗是Ant_HOME/lib中的optional.jar?是不是它的依賴庫沒發現?
7、如果任務未達到你預期的目的,運作run Ant -verbose 或 Ant -debug去找原因。
※※注意:
1、Apache Ant 1.7.0不支援windows95、windows98、winme等作業系統;
2、Ant目前還不支援微軟的JVM/JDK;
3、如果你的機器上沒有JDK,隻有JRE,那麼許多的task将不能工作。
七、Ant部分練習
1、把myfile.txt複制到目前目錄的新檔案mycopy.txt
<copy file= tofile="mycopy.txt"/>
2、把myfile.txt複制到相對路徑../some/other/dir的目錄下
<copy file="myfile.txt" todir="../some/other/dir"/>
3、把src_dir目錄下的檔案複制到指定的目錄
<copy todir="../new/dir">
<fileset dir="src_dir"/>
</copy>
4、複制一組符合條件的檔案(隻能是java檔案)到指定目錄
<copy todir="../dest/dir">
<fileset dir="src_dir">
<includes name="**/*.java"/>
</fileset>
5、複制一組符合條件的檔案(排除所有的java檔案)到指定目錄
<fileset dir="src_dir" excludes="**/*.java"/>
6、删除basedir目錄下的/lib/ant.jar檔案
<delete file="/lib/ant.jar"/>
7、删除目錄lib
<delete dir="lib"/>
8、删除目前目錄下(包括子目錄)的所有.bak檔案
<delete>
<fileset dir="." includes="**/*.bak"/>
</delete>
9、删除build目錄(包括子目錄),并且删除其中的空目錄,包括删除build目錄自身
<delete includeemptydirs="true">
<fileset dir="build">
10、删除build目錄(包括子目錄),并且删除其中的空目錄,不包括删除build目錄自身
<fileset dir="build" includes="**/*"/>
11、建立一個引用值為dist的目錄
<mkdir dir="${dist}"/>
12、在引用值dist目錄下建立lib目錄
<mkdir dir="${dist}/lib"/>
13、使用JIKES編譯器
<property name="build.compiler" value="jikes"/>
14、編譯${src}目錄下所有的java檔案,并且把.class檔案儲存到${build}目錄,Classpath使用xyz.jar,編譯時的調試資訊打開。
<javac srcdir=${src}"
destdir="${build}"
classpath="xyz.jar"
debug="on"
/>
15、編譯${src}目錄下除了Example.java以外的所有.java檔案
<javac sourcepath="" srcdir=${src}"
destdir="${build}">
<includes name="**/*.java"/>
<excludes name="**/Examples.java"/>
</javac>
16、在classpath上運作JAR包中的類
<java classname="test.Main">
<arg value="-h"/>
<classpath>
<pathelement location="dist/test.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</java>
17、把${build}/classes目錄下的檔案打成JAR包,名為${dist}/lib/app.jar
<jar destfile="${dist}/lib/app.jar" basedir="${build}/classes"/>
18、隻包括basedir目錄下的Test.class,打成${dist}/lib/app.jar包
<jar destfile="${dist}/lib/app.jar"
basedir="${build}/classes"
includes="**/Test.class"
19、把${build/classes}目錄(隻包括Test.class)和${src}/resources下的檔案打包到${dist}/lib/app.jar
<jar destfile="${dist}/lib/app.jar">
<fileset dir="${build}/lib/app.jar"
includes="**/Test.class"/>
<fileset dir="${src}/resources"/>
</jar>