Ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。
安装和配置
- 下载ant,http://ant.apache.org/。
- 解压压缩包,如放置在F:\chuxing\apache-ant-1.9.6,目录结构如下:
bin是ant的程序运行入口。
etc中存放的是一些xsl的输出模板。
lib中存放的是ant程序需要依赖的jar包。
manual中存放的是ant程序的帮助文档。 - 新建系统变量ANT_HOME = F:\chuxing\apache-ant-1.9.6,在PATH中添加ANT_HOME目录下的bin目录。
-
测试。在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命令就完成所有工作。