Ant

Ant

August 6, 2020
Ant

Ant 官方教程

官方教程链接

Ant Properties

提供一些键值对,使用 ${key} 来获取其 value官网 列举了很多内置的 properties

Ant Classpath

定义 classpath

<project name="HelloWorld" basedir="." default="main">

    <path id="classpath">
        <fileset dir="${lib.dir}" includes="**/*.jar"/>
    </path>

    <target name="compile">
        <mkdir dir="${classes.dir}"/>
        <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
    </target>

    <target name="run" depends="jar">
        <java fork="true" classname="${main-class}">
            <classpath>
                <path refid="classpath"/>
                <path location="${jar.dir}/${ant.project.name}.jar"/>
            </classpath>
        </java>
    </target>

</project>

Ant Targets

Target 是多个 tasks 的容器,这个 Target 用来完成在整个 build 过程中的某个任务,使之达到某个状态。

<target name="A"/>
<target name="B" depends="A"/>
<target name="C" depends="B"/>
<target name="D" depends="C,B,A"/>

调用链:

Call-Graph:  A → B → C → D

<Target> 示例:

<project>

    <target name="clean">
        <delete dir="build"/>
    </target>

    <target name="compile">
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes"/>
    </target>

    <target name="jar">
        <mkdir dir="build/jar"/>
        <jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">
            <manifest>
                <attribute name="Main-Class" value="oata.HelloWorld"/>
            </manifest>
        </jar>
    </target>

    <target name="run">
        <java jar="build/jar/HelloWorld.jar" fork="true"/>
    </target>

</project>

参考 Targets

Ant 所有支持的 Tasks

参考 Overview of Apache Ant Tasks