ant的bulid.xml文件写法

1.如图我有如下项目:

该build.xml是我从tomcat源代码中复制而来然后进行修改,每个项目对应一个build.xml文件,由于文件内容过多,不插图,只对其中的标签做简单介绍,以作记录。

2.常用标签介绍:

(1)<project name="tomcat 8.5" default="deploy" basedir=".">
其中name表示项目名称,default表示没有指定target时缺省的target,basedir表示项目基目录,可以填写项目的实际路径

(2)<property name="webRoot.dir" value="${basedir}/WebRoot" />
    <property name="dist.dir" value="${webRoot.dir}/dist" />

<property>标签有点像java中定义变量,定义了之后可以在别的地方引用,如上面两行数据。

还有类似下面的写法:

<property file="${user.home}/build.properties"/> 加载了该文件,然后就可以build.xml中使用该文件中定义的变量。

(3)target标签
    <target name="clear" description="clear old files">
        <delete dir="${build.dir}" />
        <delete dir="${dist.dir}" /><!--删除文件夹及包含的文件-->

        <delete dir="file="/lib/ant.jar"" /><!--删除文件-->

    </target>

    <!-- 创建目录结构 -->
    <target name="init" depends="clear" description="创建目录">
        <mkdir dir="${build.dir}/classes" />
        <mkdir dir="${dist.dir}" />
    </target>
名为init的target依赖名为clear的target,其中clear删除指定文件夹,init则创建文件夹。
target中除了delete,mkdir等task,还支持如下的内置task:

copy,echo,java,javac,move,zip,jar等,

还可以在一个target中调用另一个target,这种调用和依赖另一个target不一样:
<antcall target="someTarget"></antcall>

还可以在执行另一个构建文件<ant antfile="projectb/projectb.xml">
以上都是内置的task,我们也可以编写自己的task.下面将会介绍。

(4).filterset:定义了一组过滤器,这些过滤器将在文件移动或复制时完成文件的文本替换

<filterset id="version.filters">
    <filter token="YEAR" value="${year}"/>

</filterset>


(5)path:如果想在多个task中使用相同的path-like structure,用<path>元素定义,然后通过id属性引用。

<path id="mypath">

    <pathelement path="{classpath}"/>

    <fileset dir="${tomcat.extras}/webservices">
       <include name="jaxrpc.jar"/>
       <include name="wsdl4j.jar"/>
    </fileset>

    <pathelement location="classes"/>

</path>


(6).fileset用来定义目录位置及操作适用于该目录下的那些子目录或文件,如与copy,path等组合使用

<path id="tomcat.webservices.classpath">
    <path refid="tomcat.classpath" />
    <fileset dir="${tomcat.extras}/webservices">
      <include name="jaxrpc.jar"/>
      <include name="wsdl4j.jar"/>
    </fileset>
  </path>

(7)patternset:对模式的分组,可以被另一个模式通过id引用。

<patternset id="files.tomcat-extras-jmxremote">
    <include name="org/apache/catalina/mbeans/JmxRemote*" />
</patternset>

<jarIt jarfile="${catalina-jmx-remote-src.jar}"
      filesDir="java"
      filesId="files.tomcat-extras-jmxremote" />

或者

<patternset id="text.files" >
    <include name="**/INSTALLLICENSE"/>

<patternset />

<fileset dir="modules/jdbc-pool" >
        <exclude name=".*/**"/>
        <exclude name="**/MANIFEST.MF"/>
        <patternset refid="text.files" />
      </fileset>

3.内置的task和定义自己的task

(1)内置的task

在源码apache-ant-1.9.9-src\apache-ant-1.9.9\src\main\org\apache\tools\ant\taskdefs路径下:我们查看echo内置task的java类:

基本过程是继承Task类,重写execute方法,为了能够在java类中获取build.xml中echo的message参数,需要写message的getter和setter方法。最后echo.java被打包在ant.jar文件中。

(2)编写自定义的Task步骤如下:

a.继承Task,并重写execute方法;b.为了能够接受xml中传递下来的参数,编写setter和getter方法;c.将java文件打包为jar包;

在xml中使用自定义的task的方法如下:

<target description="自定义task">  
  <taskdef name="mytask" classname="MyTask" classpath="mytask.jar"/>  
  <mytask msg="OK"/>
</target>

4.使用ant
安装ant,配置环境变量。

如果是在myeclipse中,可以选择build.xml文件,右键--Run As --Ant Build来执行;

也可以使用cmd直接进入build.xml所在的路径,然后执行ant命令。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值