天天看点

Common Tool —— ant

Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other.

Ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的工具

build.xml语法

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<!-- 
    <project>是根元素
    name: 项目名
    basedir: 项目根目录
    default: 默认运行的<target>单元
-->
<project name="pro" basedir="." default="clean" >

<!-- 
    <property>属性定义
-->
<property enviroment="env" /> <!-- 必须放在最前,确保可以使用编译平台的环境变量 -->
<property name="source" value="src" />
<property name="library" value="lib" />
<property name="target" value="target" />

<!--
    <path>路径定义
    id: 路径名
    fileset: 目标文件
-->
<path id="pathId">
    <fileset dir="${librarg}" include="*.jar" />
</path>

<!-- 
    <target>是处理单元
    name: 单元名
    depends: 标记执行顺序
-->

<!-- ## 处理流程示例: init -> compile -> build -> clean ## -->

<!-- ## init ## -->
<target name="init">
    <!--
    <mkdir>创建目录
    dir: 目录
     -->
    <mkdir dir="${target}" />
    <mkdir dir="${target}/classes" />
    <mkdir dir="${target}/tmp" />
</target>

<!-- ## compile  ##-->
<target name="compile" depends="init">
    <!-- 
    <javac>编译 
    srcdir:源目录 
    destdir: 目标目录 
    include: 匹配模式 
    exclude: 排除模式 
    classpath: 类路径-->
    <javac srcdir="${source}" destdir="${target}/classes" encoding="UTF-8" includeantruntime="false">
        <include name="*.java" />
        <classpath refid="pathId" />
    </javac>
</target>

<!-- ## build ## -->
<target name="jar" depends="compile">
    <jar destfile="${target}/project.jar" />
</target>

<!-- ## clean ##-->
<target name="clean" depends="jar">
    <!-- <copy>拷贝
    file:源文件
    tofile: 目标文件 
    dir: 源目录  
    todir: 目标目录 
    overwrite: 覆盖
    -->
    <copy todir="${target}/tmp">
        <fileset dir="${target}/classes">
            <include name="*.class" />
        </fileset>
    </copy>
    <!--
    <delete>删除文件或目录
    file:文件名
    dir: 目录名
    -->
    <delete dir="${target}/classes" />
</target>

</project>