Eclipse之ANT使用
Ant是Java平台下非常棒的批处理命令执行程序,能非常方便地自动完成编译,测试,打包,部署等等一系列任务,大大提高开发效率。如果你现在还没有开始使用Ant,那就要赶快开始学习使用,使自己的开发水平上一个新台阶。
Eclipse中已经集成了Ant,我们可以直接在Eclipse中运行Ant。
以前面建立的Hello工程为例,创建以下目录结构:新建一个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”:填入Name:Ant_Builder;Buildfile:build.xml;Base Directory:${workspace_loc:/Hello}(按“Browse Workspace”选择工程根目录),由于用到了junit.jar包,搜索Eclipse目录,找到junit.jar,把它复制到 Hello/lib目录下,并添加到Ant的Classpath中:
然后在Builder面板中钩上Ant_Build,去掉Java Builder:
再次编译,即可在控制台看到Ant的输出:
Buildfile:F:\eclipse-projects\Hello\build.xmlinit:
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 secondsAnt依次执行初始化,编译,测试,打包,生成API文档一系列任务,极大地提高了开发效率。将来开发J2EE项目时,还可加入部署等任务。并且,即使脱离了Eclipse环境,只要正确安装了Ant,配置好环境变量ANT_HOME=<Ant解压目录>,Path=…;%ANT_HOME%\bin,在命令行提示符下切换到Hello目录,简单地键入ant即可