您的位置:首页 > 其它

【转载】ant-常用任务(Task)

2011-03-19 23:53 260 查看

以下介绍几个常用的<target>任务标签的编写,有些主题与前面介绍重复的,则仅作提示。


设定属性

当在编写build.xml时发现到有一些属性设定出现过两次以上,例如目录的指定,可以将这些属性使用<property>加以设定,以后若要改变属性设定,就只要改变对应的<property>即可,不必在build.xml中来回搜索与修改。例如:

<target name="setProperties">
<property name="src.dir" value="src"/>
<property name="classes.dir" value="classes"/>
<property name="lib.dir" value="lib"/>
<property name="backup.dir" value="bak"/>
<property name="jar.file" value="${lib.dir}/JNameIt.jar"/>
</target>

属性设置在A.4节有较详细的介绍,这里不再重复说明。


提供 help 信息

可以提供一些ant构建时的help信息。例如:

<target name="help" description="Type ant help for detail.">
<echo message="Help information!!"/>
<echo>Help! Help!</echo>
<echo><![CDATA[
Here is a help info.
Write your own information here.
]]></echo>
</target>

CDATA表示提供字符信息(Character Data),在![CDATA["与"]]>之间的文字可以使用自由格式编写,适用于比较长的信息文字的显示。

style='font-family:宋体;KKKK:blue'>在执行ant时加上-projecthelp或-p就会自动显示help这个<target>上的内容。如果<target>上加有description属性,当使用ant -projecthelp时也会一并显示该信息。一个执行的例子如下:

C:\workspace\HelloWorld>ant -p
Buildfile: build.xml

Main targets:

help  Type ant help for detail.
Default target: run

要显示详细信息,则需运行ant时指定help这个<target>。下面介绍如何显示详细信息:

C:\workspace\HelloWorld>ant help
Buildfile: build.xml

help:
[echo] Help information!!
[echo] Help! Help!
[echo]
[echo]        Here is a help info.
[echo]        Write your own information here.
[echo]

BUILD SUCCESSFUL
Total time: 0 seconds



文件的复制、建立与删除

在每一次构建程序前,会备份前一次的构建结果,可以使用<copy>标签来指定要复制的文件。例如:

<target name="backup">
<copy todir="${backup.dir}">
<fileset dir="${classes.dir}"/>
</copy>
</target>

在构建程序时,可以使用<mkdir>标签建立一些必要的目录。例如:

<target name="prepareDir"
description="prepare necessary dirs">
<mkdir dir="${classes.dir}"/>
<mkdir dir="${lib.dir}"/>
<mkdir dir="${backup.dir}"/>
</target>



编译程序

编译程序的任务当然是最常用的,还可以在编译程序时,加入一些Classpath的指定,这是一个相当方便的功能。例如:

<target name="compile"
description="compile the source files">
<javac srcdir="./src" destdir="${classes.dir}">
<classpath>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</classpath>
</javac>
</target>

A.5节中有更多有关路径设定的介绍,这里不再重复介绍。


执行程序

<java>标签用来执行Java程序。例如:

<java classname="onlyfun.caterpillar.HelloWorld">

<classpath path="."/>

</java>



制作jar文件


可以使用<jar>标签将编译完成的文件打包为.jar文件(Java Archive File),并可以指定MANIFEST文件。例如:

<target name="jar">
<mkdir dir="${libDir}"/>
<jar jarfile="${libDir}/${jarFile}"
manifest="META-INF/MANIFEST.MF"
basedir="${lib.dir}"/>
</target>

如果提供有MANIFEST.MF文件,才需要设定manifest属性。为了完成jar打包的任务,可以在META-INF目录下提供一个MANIFEST.MF文件。例如:

MANIFEST.MF

Manifest-Version: 1.0

Created-By: caterpillar

Main-Class: onlyfun.caterpillar.HelloWorld

Class-Path: HelloWorld.jar

执行ant时可以指定任务与提供lib目录及jar文件的名称。例如:

C:\workspace\HelloWorld>ant jar -DlibDir=lib -DjarFile=HelloWorld.jar
Buildfile: build.xml

jar:
[jar] Building jar: C:\workspace\HelloWorld\lib\HelloWorld.jar

BUILD SUCCESSFUL
Total time: 0 seconds

这里的设定所建立的jar由于包括Main-Class设定,而指定的类别中有main(),所以可以直接执行。例如:

C:\workspace\HelloWorld\lib>java -jar HelloWorld.jar
Hello Java!!



制作war文件

对于网站应用程序的部署,可以使用<war>标签将所有相关的文件包装为war(Web Application Archive)文件。例如:

<target name="war">

<war destfile="dist/guestbook.war"

webxml="src/webapp/WEB-INF/web.xml">

<classes dir="target/classes"/>

<lib file="beantools.jar"/>

</war>

</target>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: