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

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

编译源代码ide

因为Ant的主要目标就是生成java应用程序,它内置了javac任务来调用java的编译器。此任务通常定义以下学习

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

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

建立jar文件code

在编译java源文件以后,一般会将其归档打包为一个jar文件。Jar任务一般以下定义xml

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

此任务将建立一个wufengtinghai.alm.jar文件,并将build下的全部文件打包到此jar文件中。若是没有指定清单文件,Ant则会生成一个基本的清单文件。Manifest属性容许制定一个清单文件,同时也可使用manifest任务定义清单文件。ip

<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

 

生成时间戳 get

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

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

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

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

那咱们能够将咱们的jar文件定义为以下

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

最终咱们的生成文件autobuildjava.xml以下

<?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

执行生成控制台输出以下

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

相关文章
相关标签/搜索