Eclipse之ANT使用

Ant是Java平台下非常棒的批处理命令执行程序,能非常方便地自动完成编译,测试,打包,部署等等一系列任务,大大提高开发效率。如果你现在还没有开始使用Ant,那就要赶快开始学习使用,使自己的开发水平上一个新台阶。

Eclipse中已经集成了Ant,我们可以直接在Eclipse中运行Ant。

  以前面建立的Hello工程为例,创建以下目录结构:
Eclipse之ANT使用

新建一个build.xml,放在工程根目录下。build.xml定义了Ant要执行的批处理命令。虽然Ant也可以使用其它文件名,但是遵循标准能更使开发更规范,同时易于与别人交流。

通常,src存放Java源文件,classes存放编译后的class文件,lib存放编译和运行用到的所有jar文件,web存放JSP等web文件,dist存放打包后的jar文件,doc存放API文档。

然后在根目录下创建build.xml文件,输入以下内容:

<?xmlversion="1.0"?>

<projectname="Helloworld"default="doc">

<!--properies-->

<propertyname="src.dir"value="src"/>

<propertyname="report.dir"value="report"/>

<propertyname="classes.dir"value="classes"/>

<propertyname="lib.dir"value="lib"/>

<propertyname="dist.dir"value="dist"/>

<propertyname="doc.dir"value="doc"/>

<!--定义classpath-->

<pathid="master-classpath">

<filesetfile="${lib.dir}/*.jar"/>

<pathelementpath="${classes.dir}"/>

</path>

<!--初始化任务-->

<targetname="init">

</target>

<!--编译-->

<targetname="compile"depends="init"description="compilethesourcefiles">

<mkdirdir="${classes.dir}"/>

<javacsrcdir="${src.dir}"destdir="${classes.dir}"target="1.4">

<classpathrefid="master-classpath"/>

</javac>

</target>

<!--测试-->

<targetname="test"depends="compile"description="runjunittest">

<mkdirdir="${report.dir}"/>

<junitprintsummary="on"

haltonfailure="false"

failureproperty="tests.failed"

showoutput="true">

<classpathrefid="master-classpath"/>

<formattertype="plain"/>

<batchtesttodir="${report.dir}">

<filesetdir="${classes.dir}">

<includename="**/*Test.*"/>

</fileset>

</batchtest>

</junit>

<failif="tests.failed">

***********************************************************

****Oneormoretestsfailed!Checktheoutput...****

***********************************************************

</fail>

</target>

<!--打包成jar-->

<targetname="pack"depends="test"description="make.jarfile">

<mkdirdir="${dist.dir}"/>

<jardestfile="${dist.dir}/hello.jar"basedir="${classes.dir}">

<excludename="**/*Test.*"/>

<excludename="**/Test*.*"/>

</jar>

</target>

<!--输出api文档-->

<targetname="doc"depends="pack"description="createapidoc">

<mkdirdir="${doc.dir}"/>

<javadocdestdir="${doc.dir}"

author="true"

version="true"

use="true"

windowtitle="TestAPI">

<packagesetdir="${src.dir}"defaultexcludes="yes">

<includename="example/**"/>

</packageset>

<doctitle><![CDATA[<h1>Hello,test</h1>]]></doctitle>

<bottom><![CDATA[<i>AllRightsReserved.</i>]]></bottom>

<tagname="todo"scope="all"description="Todo:"/>

</javadoc>

</target>

</project>

以上xml依次定义了init(初始化),compile(编译),test(测试),doc(生成文档),pack(打包)任务,可以作为模板。

  选中Hello工程,然后选择“Project”,“Properties”,“Builders”,“New…”,选择“Ant Build”:
Eclipse之ANT使用

填入Name:Ant_Builder;Buildfile:build.xml;Base Directory:${workspace_loc:/Hello}(按“Browse Workspace”选择工程根目录),由于用到了junit.jar包,搜索Eclipse目录,找到junit.jar,把它复制到 Hello/lib目录下,并添加到Ant的Classpath中:

Eclipse之ANT使用

然后在Builder面板中钩上Ant_Build,去掉Java Builder:

Eclipse之ANT使用

再次编译,即可在控制台看到Ant的输出:

Buildfile:F:\eclipse-projects\Hello\build.xml

init:

compile:

[mkdir]Createddir:F:\eclipse-projects\Hello\classes

[javac]Compiling2sourcefilestoF:\eclipse-projects\Hello\classes

test:

[mkdir]Createddir:F:\eclipse-projects\Hello\report

[junit]Runningexample.HelloTest

[junit]Testsrun:1,Failures:0,Errors:0,Timeelapsed:0.02sec

pack:

[mkdir]Createddir:F:\eclipse-projects\Hello\dist

[jar]Buildingjar:F:\eclipse-projects\Hello\dist\hello.jar

doc:

[mkdir]Createddir:F:\eclipse-projects\Hello\doc

[javadoc]GeneratingJavadoc

[javadoc]Javadocexecution

[javadoc]Loadingsourcefilesforpackageexample...

[javadoc]ConstructingJavadocinformation...

[javadoc]StandardDocletversion1.4.2_04

[javadoc]Buildingtreeforallthepackagesandclasses...

[javadoc]Buildingindexforallthepackagesandclasses...

[javadoc]Buildingindexforallclasses...

[javadoc]GeneratingF:\eclipse-projects\Hello\doc\stylesheet.css...

[javadoc]Note:Customtagsthatcouldoverridefuturestandardtags:@todo.Toavoidpotentialoverrides,useatleastoneperiodcharacter(.)incustomtagnames.

[javadoc]Note:Customtagsthatwerenotseen:@todo

BUILDSUCCESSFUL

Total time: 11 seconds

Ant依次执行初始化,编译,测试,打包,生成API文档一系列任务,极大地提高了开发效率。将来开发J2EE项目时,还可加入部署等任务。并且,即使脱离了Eclipse环境,只要正确安装了Ant,配置好环境变量ANT_HOME=<Ant解压目录>,Path=…;%ANT_HOME%\bin,在命令行提示符下切换到Hello目录,简单地键入ant即可

ant

相关推荐