ant的build.xml标签简介

ant的build.xml标签简介
1.project标签
<project basedir=”.” name=”example” default=”main”>
….
<target name=”main”>
….
</target>
….
</project>
project 标记包含3个属性:
。basedir 指定项目所在的目录位置
。name 设定项目的名称
。default 设顶项目的build执行时预设的target

2.target标签
target标签在project标签之内,一个project可以包含多个target
….
<target name=”init”>
</target>
<target desponds=”init” description=”执行程序” name=”main”>
</target>
….
target 标签包含6个属性
。description 对于这个target的描述
。name target的名称
。depends 所依赖的其他target
     example:
{
     <target name=”x”/>
     <target name=”y”/>
     <target depends=”x,y” name=”z”/>
     …..
     执行顺序为xyz
}
。if 检查某个属性(x)设置了,只有这个属性(x)的时候target才执行
     example
     {
         <property name=”someOne” value=”someValue”/>
         <target name=”init”>
         </target>
         <target if=”someOne” deends=”init” description=”执行程序” name=”main”>
         </target>
         …..
         只有someOne这个属性被设置了,init执行了,main才执行
     }
。unless 检查某个属性(x)是否被设置了,和if相反,只有这个属性没有设置的时候才执行这个任务。
。id 标记这个target的id.
3.task标签
task 可以用来执行一个特定的工作,在Ant中已经做了许多工作,而且Ant的结构也支持所以用者自己开发task,只要在使用前申明这个task就可以了
     example:
{
     <target name=”xdoclet”>
         <taskdef classpathref=”path” classname=”xdoclet.modules.ejb.A” name=”ejbdoclet”>
         <taskdef          classpathref=”path” className=”xdoclet.modules.B” name=”jbossnet”>
         <ejbdoclet ejbspec=”2.0” destDir=”src”>
             <fileset dir=”src”      includes=”**/*.java” />
             <deploymentdescriptior destDir=”src/META-INF” />
             <homeinterface/>
             <remoteinterface/>
             <jboss version=”4.0” destDir=”src/META-INF” />
             <jbossnet webDeploymentName=”hello” prefix=”hello” destDir=”build/hello/META-INF” targetNameSpace=”http://….” />
             <packageSubstitution packages=”ejb” substituteWith=”interfaces”/>
         </ejbdoclet>
     </target>
}

4.基本的元素
     ⑴property用来标记project中一些公用的设定值,
     example:
{
     ……
     <property id=”ref” name=”source” value=”src”/>
     <property name=”scr” refid=”ref” />
     <property name=”jboss.test.jbossmx” location=”${build.lib}/jboss-jmx.jar”/>
     ……

     也可以从其他文件取得属性
     <property enviroment=”env” />
     <property resource=”org/jboss/tools/task.properties”/>
     <property file=”./task.properties”/>
}
     ⑵路径classpath可以在target中设置java的classpath
             example:
{
             <target name=”compile-classes”>
                 <mkdir dir=”${build.classes}”/>
                 <javac destdir=”${build.classes}” target=”${javac.target}”>
                     <classpath>
                         <pathelement Location=”{build.classes}”/>
                         <pathelement Location=”{bodule.source}/test”/>
                         <path refid=”javac.classpath”/>
                     </classpath>
                 </javac>
             </target>
             。。。。。。。
             也可以通过path设定通用的路径,然后在其他的位置应用
                 <path id=”path”>
                     <fileset dir=”${lib}”>
                         <include name=”*.jar”/>
                     </fileset>
                     <pathelement location=”${build.classes}”/>
                 </path>
                 <target name=”compile-classes”>
                     <mkdir dir=”${build.classes}”/>
                     <javac destdir=”{build.classes}” target=”${javac.target}”>
                         <classpath      refid=”path”/>
                     </javac>
                 </target>
                 …….
}

⑶文件相关的标签
fileset用来描述一些文件的集合:
。dir 设定fileset的根目录的位置
。exclude 设定fileset不包含的文件
。include 设定fileset包含的文件
     example {
         …..
         <fileset      dir=”${source.java}”>
             <include name=”**/*.properties”/>
             <exclude name=”**/javax.servlet.jar”/>
             <exclude name=”**/xxx.jar”/>
         </fileset>
         …
}

。dirset用来描述目录的集合:
。dir      设定dirset的根目录位置
。exclude设定dirset不包含的文件
。include 设定dirset包含的文件
     example {
         …..
         <dirset      dir=”${build.dir }”>
             <include name=”**/classes”/>
             <exclude name=”**/*Test**”/>
         </dirset>
         …
}
。mkdir用来描述目录的集合:
。dir      设定要建立的目录
     example
     {
         …
         <mkdir dir=”${build}”/>
         <mkdir dir=”${build}/classes”/>
         <mkdir dir=”${doc}/>
         …
}
。copy用来复制文件
。todir 用来设定复制文件的目的地
。fileset做为要复制的文件的集合,在copy下可以放置多个fileset和其他文件的标签
         example
         {
             …
             <copy todir=”${build}/war”>
                 <fileset dir=”${src}/classes”></fileset>
             </copy>
             …
}

。delete 用来删除文件
。fileset做要删除文件的集合,可以放多个标签和其他的文件的标签
         example
         {
             …
             <delete>
                 <fileset dir=”${build}” include=”**/*.java”/>
             </delete>
             …
}

5.结构标签
⑴ant用来呼叫其他的build文件, 让多个子文件可以一起工作
,antfile 指定的外部build文件
。target 指定的外部build文件中的一个target

<ant antfile=”anotherbuild.xml”/>
<ant antfile=”anotherbuild.xml” target=”compile”/>
….
⑵antcall 可以调用其他的target
。target 指定的target名称
。param 调用时传的参数

<target      name=”init”>
</target>
<antcall target=”iniit”>
     <param name=”parame1” value=”value1”/>
</anticall>

⑶sequential 在sequential中的任务将被依照顺序执行

<sequential>
     <anticall target=”task1”></anticall>
     <anticall target=”task2”></anticall>
     <anticall target=”task3”></anticall>
</sequential>

⑷parallel 在parallel中的任务将会被并行执行

< parallel >
     <anticall target=”task1”></anticall>
     <anticall target=”task2”></anticall>
     <anticall target=”task3”></anticall>
</ parallel >


</script>

你可能感兴趣的:(ant的build.xml标签简介)