首先下面是一个完整的ant build.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project name="CBEUatTest" basedir="." default="makewar">  <!--CBEUatTest为项目名-->
<property name="classpath_lib" value="WebContent/WEB-INF/lib" />
<property name="sources" value="${basedir}/src" />
<path id="classpath">
<!--添加lib 中的jar 包到软件中-->
<fileset dir="${classpath_lib}">
<include name="*.jar" />
</fileset>
<!--添加lib 之外的包,如果需要添加就可以放开该处
<fileset dir="E:\tools\tomcat7.0\lib">
<include name="*.jar" />
</fileset>-->
</path>
<property name="debuglevel" value="source,lines,vars" />
<property name="target" value="1.8" />
<property name="source" value="1.8" />
<target name="init">
<!--该出value为war导出的路径 最后的效果是这样\CBEUatTest\build\CBEUatTest.war-->
<property name="build" value="build/">
</property>
<property name="src" value="src">
</property>
<delete dir="${build}">
</delete>
<mkdir dir="${build}" />
<mkdir dir="${build}\WEB-INF" />
<mkdir dir="${build}\WEB-INF\classes" />
<mkdir dir="${build}\WEB-INF\lib" />
<copy todir="${build}">
<fileset dir="${basedir}\WebContent">
<include name="WEB-INF/**" />
<include name="**" />
</fileset>
</copy>
</target>
<target name="complie" depends="init">
<!--添加源文件内容和编码utf-8 因为默是系统的本地时间-->
<javac srcdir="${src}" destdir="${build}/WEB-INF/classes" encoding="utf-8" classpathref="classpath" includeantruntime="on">
</javac>
</target>
<!--生成CBEUatTest.war包结构,此处是生成的war名称配置,建议和项目名一致-->
<target name="makewar" depends="complie">
<war warfile="${build}/CBEUatTest.war" webxml="${build}/WEB-INF/web.xml">
<lib dir="${build}/WEB-INF/lib">
<include name="**" />
</lib>
<classes dir="${build}/WEB-INF/classes" />
<fileset dir="${build}" />
</war>
</target>
</project>

你会发现在这里,存在:

<target name="init">...</target>
<target name="complie" depends="init">...</target>
<target name="makewar" depends="complie">...</target>

此处的target对应jenkins中的ant配置Targets:
这里写图片描述

调用 makewar时,它依赖complie
调用complie时, 它依赖init
这样我们就可以直接一次调用makewar时,ant执行了三个动作,从前往后分别是init,complie,makewar
这里写图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐