转载

使用Ant自动化我们的java项目生成

现在我们已经了解如何定义属性、依赖关系以及如何运行ant,接下来我们将学习怎样使用ant编译java源代码并生成jar文件。

编译源代码

由于Ant的主要目标就是生成java应用程序,它内置了javac任务来调用java的编译器。此任务一般定义如下

<javac srcdir=”src”  destdir=“build”/>

Ant会寻找src目录下所有以.java为扩展名的所有文件,并对他们调用javac编译器,从而在build目录下生成class文件。Javac任务不仅会编译需要编译的源文件,如果某个类文件已经存在,但是对应的源代码文件自从该类文件生成后没有改过,则不会重新编译此源代码文件。

创建jar文件

在编译java源文件之后,通常会将其归档打包为一个jar文件。Jar任务通常如下定义

<jar destfile=”wufengtinghai.alm.jar”  basedir=”build”/>

此任务将创建一个wufengtinghai.alm.jar文件,并将build下的所有文件打包到此jar文件中。如果没有指定清单文件,Ant则会生成一个基本的清单文件。Manifest属性允许制定一个清单文件,同时也可以使用manifest任务定义清单文件。

使用Ant自动化我们的java项目生成
<jar destfile="wufengtinghai.alm.jar" basedir="classes"> <manifest> <attribute name="Built-By" value="${user.name}"/> <attribute name="project" value="wufengtinghai.alm"/> </manifest> </jar>
View Code

生成时间戳

在生成环境中使用当前时间和日期,可以以此种方式标记某个生成何时生成输出的。Ant提供了简单易用的tstamp任务可以完成这个功能。这个任务通常在生成过程开始时调用。Tstamp不产生任何的输出;相反,它会根据当前系统时间和日期设置Ant的相关属性。

DSTAMP:设置为当前日期,默认格式为yyymmdd,例如20150606

TSTAMP:设置为当前时间,默认格式为hhmm,例如1020

TODAY:设置为当前日期,带完整的月份,例如2015年6月6日

那我们可以将我们的jar文件定义为如下

<jar destfile="lucene-${DSTAMP}.jar" basedir="classes"/>

最终我们的生成文件autobuildjava.xml如下

使用Ant自动化我们的java项目生成
<?xml version="1.0"?> <project default="dist" name="autobuildjava"  basedir="../">  <description>A simple auto build  Java project</description>  <property name="srcDir" location="src" />  <property name="buildDir" location="build" />  <property name="distDir" location="dist" />  <target name="init">   <tstamp />   <mkdir dir="${buildDir}" />   <mkdir dir="${distDir}" />  </target>  <target name="compile" depends="init">   <javac srcdir="${srcDir}" destdir="${buildDir}" />  </target>  <target name="dist" depends="compile">   <jar destfile="${distDir}/wufengtinghai.alm-${DSTAMP}.jar" basedir="${buildDir}">    <manifest>     <attribute name="Built-By" value="${user.name}" />     <attribute name="project" value="wufengtinghai.alm" />    </manifest>   </jar>  </target>  <target name="clean">   <delete dir="${buildDir}" />   <delete dir="${distDir}" />  </target> </project> 
View Code

执行生成控制台输出如下

使用Ant自动化我们的java项目生成

生成的jar文件和清单文件如下

使用Ant自动化我们的java项目生成

正文到此结束
Loading...