使用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>