ant 简介(二)

版权声明:转载请申明出处,谢谢 https://blog.csdn.net/qq_35495763/article/details/88089171

系统属性

在这里插入图片描述
举例
在build.xml 中

<?xml version="1.0"?>
   <project name="Hello World Project" default="info">
   <target name="info">
      <echo>Hello World - Welcome to Apache Ant!</echo>
      <echo>Project.file: ${ant.file}</echo>
      <echo>ant.version: ${ant.version}</echo>
      <echo>basedir: ${basedir}</echo>
      <echo>ant.java.version: ${ant.java.version}</echo>
      <echo>ant project name: ${ant.project.name}</echo>
      <echo>ant project invoke targets:   ${ant.project.invoked-targets}</echo>
      <echo>ant core lib : ${ant.core.lib}</echo>
      <echo>ant library dir: ${ant.library.dir}</echo>
   </target>
</project>

运行结果
在这里插入图片描述

自定义属性的使用

在build.xml 中添加

<?xml version="1.0"?>
<project name="Hello World Project" default="info">
   <property name="sitename" value="www.tutorialspoint.com"/>
   <target name="info">
      <echo>Apache Ant version is ${ant.version} - You are at ${sitename} </echo>
   </target>
</project>

将属性值单独配置到属性文件中

<?xml version="1.0"?>
<project name="Hello World Project" default="info">
   <property file="build.properties"/>
   <target name="info">
      <echo>Apache Ant version is ${ant.version} - You are at ${sitename} </echo>
   </target>
</project>

在同一目录下放置

build.properties

# The Site Name
sitename=wiki.w3cschool.cn
buildversion=3.3.2

sitename 是一个自定义属性,执行后映射到一个地址为 “wiki.w3cschool.cn” 的网站

ANT中的任务概念

任务类别

  1. 内置任务
    其库中提供的任务称为内置任务。 Apache ant提供了大量内置任务,可用于执行区分任务。 如下列表所示:

    • 存档任务
    • 审计任务
    • 编译任务
    • 执行任务
    • 文件任务
    • 记录任务
    • 邮件任务
  2. 自动义任务

内置任务举例

<project name="java-ant project" default="run">  
    <target name="run" depends="compile">  
        <java classname = "com.yiibai.Hello">   <!--这是一个执行类的任务java-->
            <classpath path="test"></classpath>  
        </java>  
    </target>  
</project>

Ant 令牌过滤器

作用:允许我们在复制时过滤文件中的数据。
举例:

<filter token="name" value="yiibai"/>  
<copy todir="destination-directory" filtering="true">  
  <fileset dir="source-directory"/>  
</copy>
  • 将source-directory目录下的文件copy到destination-directory.
  • 将@name@ 换成yiiibai字符串

ANT 预定义的数据类型

Ant 提供一些预定义的数据类型。不要将术语“数据类型”和那些在编程语言中可用的数据类型相混淆,而是将他们视作一组已经在产品中配置好的服务。

下述的数据类型是由 Apache Ant 提供的

1. 文件集

一个文件集合。它被当作一个过滤器,用来包括或移除匹配某种模式的文件。

<fileset dir="${src}" casesensitive="yes"> <!--区分大小写-->
   <include name="/.java"/>
   <exclude name="/Stub"/>
</fileset>

2.模式集合

模式集合就是指的是一种模式,基于这种模式可以过滤文件或者文件夹

<patternset id="java.files.without.stubs">
   <include name="src//.java"/>
   <exclude name="src//Stub"/>
</patternset>

在文件集中是使用

<fileset dir="${src}" casesensitive="yes">  
    <patternset refid="java.files.without.stubs"/>
</fileset>

3. 文件列表

说明:类似与文件集合
文件列表包含明确命名的文件的列表,同时其不支持通配符
文件列表数据类型能够被应用于现有的或者还不存在的文件中。

<filelist id="config.files" dir="${webapp.src.folder}">   
    <file name="applicationConfig.xml"/>   
    <file name="faces-config.xml"/>   
    <file name="web.xml"/>   
    <file name="portlet.xml"/>
</filelist>

4. 过滤器集合

使用一个过滤器集合数据类型与拷贝任务,你可以在所有文件中使用一个替换值来替换掉一些与模式相匹配的文本。
关键字:替换文本,拷贝任务

<copy todir="${output.dir}">
   <fileset dir="${releasenotes.dir}" includes="/.txt"/>
   <filterset>
      <filter token="VERSION" value="${current.version}"/>
   </filterset>
</copy>

在将文件赋值到之指定位置时,同时过滤掉@VERSION@替换成${current.version}

猜你喜欢

转载自blog.csdn.net/qq_35495763/article/details/88089171
ANT