Ant安装
解压apache-ant-1.8.4.zip
将Ant的bin目录加入到path
Ant使用(手动编译)
新建ant_test文件夹,新建子文件夹ant_test/teach/ant/ant01,例如:D:\Javadev\ant_test\teach\ant\ant01
在ant01中,新建build.xml,新建HelloWorld.java并写入代码
1,编辑build.xml,在当前目录的cmd中输入ant,编译,其中build.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project default="compile">
<target name="compile">
<javac destdir="." srcdir="."/>
</target>
</project>
2,执行过程,编辑build.xml,在当前目录的cmd中输入ant,修改build.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project default="execute">
<target name="compile">
<javac destdir="." srcdir="."/>
</target>
<target name="execute">
<java classpath="." classname="HelloWorld"/>
</target>
</project>
1将编译和执行过程放在一起:编辑build.xml,在当前目录的cmd中输入ant
<?xml version="1.0" encoding="UTF-8"?>
<project default="execute">
<target name="compile">
<javac destdir="." srcdir="."/>
</target>
<!—默认自动执行execute-->
<target name="execute"depends="compile">
<java classpath="." classname="HelloWorld"/>
</target>
</project>
Ant编译普通Java项目的流程(MyEclipse环境):
1,配置MyEclipse环境:
window->preferences->Ant,在Documentation Url 中选择apache-ant-1.8.4/manual/所在的路径
在Ant->Runtime中,设置Ant Home为apache-ant-1.8.4/所在的路径
2,新建Java项目,并填入源代码,在项目路径下,新建build.xml文件
3,build.xml文件内容如下(新建目录及拷贝源代码部分)
<?xml version="1.0" encoding="UTF-8"?>
<project>
<!--创建文件夹-->
<targetname="init">
<deletedir="build"></delete>
<mkdirdir="build"/>
<mkdirdir="build/src"/>
<mkdirdir="build/classes"/>
<mkdirdir="build/dist"/>
</target>
<!--定义源代码文件集-->
<filesetid="src.path"dir="src">
<includename="**/*.*"/> <!--包含src下所有文件-->
<excludename="**/Test*"/><!---排除以Test开头的文件-->
</fileset>
<!--拷贝src源文件到build/src-->
<targetname="cpysrc"depends="init">
<copytodir="build/src">
<filesetrefid="src.path"></fileset>
</copy>
</target>
<!--
删除文件夹
<target name="delete">
<delete dir="build"></delete>
</target>
-->
</project>
4,执行编译
右击右侧Outline中的project下的copsrc,选择Run as -> Ant build
即可新建相应的文件夹,并把源代码拷贝到build/src下
<?xml version="1.0" encoding="utf-8"?>
<projectdefault="execute">
<!--定义属性,相当于定义一些常量,调用的时候使用$符号-->
<propertyname="build.dir"value="build"></property>
<propertyname="build.classes"location="${build.dir}/classes"></property>
<!--路径使用location时,会适应具体操作系统-->
<!--创建文件夹-->
<targetname="init">
<deletedir="${build.dir}"></delete> <!—尽可能多的使用属性,便于以后更改-->
<mkdirdir="${build.dir}"/>
<mkdirdir="${build.src}"/>
<mkdirdir="build/classes"/>
<mkdirdir="build/dist"/>
</target>
<!--定义源代码文件集-->
<filesetid="src.path"dir="src">
<includename="**/*.*"/> <!--包含src下所有文件-->
<excludename="**/Test*"/><!---排除以Test开头的文件-->
</fileset>
<!--拷贝src源文件到build/src-->
<targetname="cpysrc"depends="init">
<copytodir="build/src">
<filesetrefid="src.path"></fileset>
</copy>
</target>
<!--编译-->
<targetname="compile"depends="init">
<javacdestdir="build/classes"srcdir="src"></javac>
</target>
<!--打包-->
<targetname="jar"depends="compile">
<jardestfile="build/dist/hello.jar"basedir="build/classes">
<manifest>
<attributename="Main-Class"value="ant.zttc.edu.cn.HelloWorld"/>
<attributename="Build-By"value="LiuLiBo"/>
</manifest>
</jar>
</target>
<!--运行-->
<targetname="execute"depends="jar,cpysrc">
<echo>based on classname</echo>
<javaclassname="ant.zttc.edu.cn.HelloWorld"classpath="build/classes">
<argvalue="zhangsan"/><!—传命令行参数-->
<argvalue="lisi"/>
</java>
<echo>based on jar</echo>
<javajar="build/dist/hello.jar"fork="true">
<argvalue="zhangsan"/>
<argvalue="lisi"/>
</java>
</target>
<!--
删除文件夹
<target name="delete">
<delete dir="build"></delete>
</target>
-->
</project>
针对属性的优化策略
项目目录下新建build.properties文件,用来存放属性(但路径常量通常不存放在properties,因为properties默认为key-value对,不能取location),build.properties内容如下:
execute.class=ant.zttc.edu.cn.HelloWorld
jar.name=hello.jar
在build.xml通过如下方式导入,使用方式照旧
<!--引入外部属性文件build.properties-->
<propertyfile="build.properties"></property>
<echo>${execute.class}</echo>
<!--导出环境变量到env-->
<propertyenvironment="env"></property>
<!--测试-->
<targetname="test">
<echo>${build.classes}</echo>
<echo>${env.CATALINA_HOME}</echo>
<echo>${env.JAVA_HOME}</echo>
</target>
输出如下:
test:
[echo] D:\Javadev\JUnit\ant02\build\classes
[echo] C:\apache-tomcat-6.0.32
[echo] C:\Program Files\Java\jdk1.6.0_26