天天看點

用Ant建構腳本(5)

版權聲明:本文為部落客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>