使用Ant构建脚本的方法

使用Ant构建脚本的方法

用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>
</copy>
5、复制一组符合条件的文件(排除所有的java文件)到指定目录
<copy todir="../dest/dir">
<fileset dir="src_dir" excludes="**/*.java"/>
</copy>
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">
</delete>
10、删除build目录(包括子目录),并且删除其中的空目录,不包括删除build目录自身
<delete includeemptydirs="true">
<fileset dir="build" includes="**/*"/>
</delete>
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>