Ant学习笔记

Ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。

安装和配置

  1. 下载ant,http://ant.apache.org/
  2. 解压压缩包,如放置在F:\chuxing\apache-ant-1.9.6,目录结构如下:
    bin是ant的程序运行入口。
    etc中存放的是一些xsl的输出模板。
    lib中存放的是ant程序需要依赖的jar包。
    manual中存放的是ant程序的帮助文档。
  3. 新建系统变量ANT_HOME = F:\chuxing\apache-ant-1.9.6,在PATH中添加ANT_HOME目录下的bin目录。
  4. 测试。在cmd中输入ant回车,如果看到如下提示则表示配置成功。

    Buildfile: build.xml does not exist!
    Build failed

准备项目

我们将java源文件放在src目录中,所有生成的文件放在build目录中,build下面有两个子目录classses和jar,分别用于存放编译得到的class文件和生成的jar文件。

1 创建src目录

md src

2 在src\oata\HelloWorld.java文件中编写如下代码:

package oata;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

3 编译和运行

md build\classes
javac -sourcepath src -d build\classes src\oata\HelloWorld.java
java -cp build\classes oata.HelloWorld

4 创建一个可执行的jar文件

echo Main-Class: oata.HelloWorld>myManifest
md build\jar
jar cfm build\jar\HelloWorld.jar myManifest -C build\classes .
java -jar build\jar\HelloWorld.jar

使用Ant运行程序

默认情况下,Ant使用build.xml作为buildfile文件,我们的.\build.xml内容如下:

<project>

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

    <target name="compile">
        <mkdir dir="build/classes"/>
        <javac srcdir="src" destdir="build/classes" includeantruntime="on"/>
    </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>

现在可以通过如下命令编译、生成jar文件和运行程序:

ant compile
ant jar
ant run

或者直接使用:

ant compile jar run

增强后的build文件

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

    <property name="src.dir"     value="src"/>

    <property name="build.dir"   value="build"/>
    <property name="classes.dir" value="${build.dir}/classes"/>
    <property name="jar.dir"     value="${build.dir}/jar"/>

    <property name="main-class"  value="oata.HelloWorld"/>



    <target name="clean">
        <delete dir="${build.dir}"/>
    </target>

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

    <target name="jar" depends="compile">
        <mkdir dir="${jar.dir}"/>
        <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="${main-class}"/>
            </manifest>
        </jar>
    </target>

    <target name="run" depends="jar">
        <java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>
    </target>

    <target name="clean-build" depends="clean,jar"/>

    <target name="main" depends="clean,run"/>

</project>

此时可以只输入ant命令就完成所有工作。

上一篇:jstring 和char* 之间的转换方法


下一篇:Shell之-Tomcat资源检测