ant –projecthelp :查看所有target
- 查看project的版本是:ant.java.version。如:<target name="targetA" if="ant.java.version">
- project的属性可以通过property元素来设定,也可在Ant之外设定。若要在外部引入某文件,例如build.properties文件,可以通过如下内容将其引入:<property file=” build.properties”/>
- Ant提供一些它自己的内置属性,它能得到的系统属性的列表与Java文档中System.getPropertis()方法得到的属性一致,这些系统属性可参考sun网站的说明。这些内置属性如:
basedir:project基目录的绝对路径,该属性在讲解project元素时有详细说明,不再赘述;
ant.file:buildfile的绝对路径,如上面的各例子中,ant.file的值为E:"build.xml;
ant.version:Ant的版本,在本文中,值为1.7.0;
ant.project.name:当前指定的project的名字,即前文说到的project的name属性的值;
ant.java.version:Ant检测到的JDK的版本,在上例运行结果中可看到为1.5。
- property元素可用作task的属性值。在task中是通过将属性名放在“${”和“}”之间,并放在task属性值的位置来实现的。如:
<echo message="name: ${name}, age: ${age}"/>。
- <echo message="Hello,Amigo" file="log.txt" append="true"/>,是向文件log.txt后面追加信息“Hello,Amigo”,append="true"表示后面追加。
<project name="javacTest"default="compile" basedir="."> <target name="clean"> <delete dir="build"/> </target> <target name="compile" depends="clean"> <mkdir dir="build/classes"/> <javac srcdir="src" destdir="build/classes"/> </target> </project>
上文中,target:clean,是为了让创建build文件夹成功,所以需要确保原目录下没有build文件夹。- 在运行target中应该有depends="compile"属性的,表示运行的前提是编译。而现在没有,一样可以运行成功,表示:默认情况下project中的target是按顺序执行的。
<?xml version="1.0"?> <project name="javacTest" default="compile" basedir="."> <target name="clean"> <delete dir="build"/> </target> <target name="compile" depends="clean"> <mkdir dir="build/classes"/> <javac srcdir="src" destdir="build/classes"/> </target> <target name="run" > <!-- 这一行原来应该有“depends="compile"”属性的 --> <java classname="HelloWorld"> <classpath> <pathelement path="build/classes"/> </classpath> </java> </target> </project>
- <project name="javacTest" default="compile" basedir=".">中,basedir="."应该表示,此project的根目录就是当前目录。
问题:下面代码中,执行project时,只运行到compile,run与jar都没有运行。为什么?原因:<project name="javacTest" default="compile" basedir=".">中default的值写错了,应该是default="jar"。
<?xml version="1.0"?> <project name="javacTest" default="compile" basedir="."> <target name="clean"> <delete dir="build"/> </target> <target name="compile" depends="clean"> <mkdir dir="build/classes"/> <javac srcdir="src" destdir="build/classes"/> </target> <target name="run" depends="compile"> <java classname="HelloWorld"> <classpath> <pathelement path="build/classes"/> </classpath> </java> </target> <target name="jar" depends="run"> <jar destfile="helloworld1.jar" basedir="build/classes"> <manifest> <attribute name="Main-class" value="HelloWorld"/> </manifest> </jar> </target> </project>
- 对web工程的打包target的书写举例:
<!-- 打war包--> <target name="war" depends="compile"> <war destfile="${build}/antwebproject.war" webxml="WebRoot/WEB-INF/web.xml"> <!-- 拷贝WebRoot下除了WEB-INF和META-INF的两个文件夹--> <fileset dir="WebRoot" includes="**/*.jsp"/> <!-- 拷贝lib目录下的jar包--> <lib dir="${lib}"/> <!-- 拷贝build/classes下的class文件--> <classesdir="${classes}"/> </war> </target>
- 完
ant个人关注点
最新推荐文章于 2024-04-30 16:24:25 发布