【转载】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>
相关文章推荐
- 【转载】hadoop之failed task任务和killed task任务
- 【转载】hadoop之failed task任务和killed task任务
- Ant的任务(task)
- 【翻译】Ant常用任务1-解压缩任务
- Ant 常用Task
- Ant内置任务之taskdef
- ant常用task之condition
- 3招解决ant构建时任务找不到(taskdef cann't be found)的问题
- Spring任务调度<task:scheduled-tasks>【含cron参数详解】 (转载)
- 转载:Android下affinities和任务(task)
- 【转载】A lightweight distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
- Ant 常用任务
- 转载:Android下affinities和任务(task)
- Ant快速入门(四)-----Ant的任务(Task)
- 【转载】hadoop之failed task任务和killed task任务
- Ant系列四: 常用任务标签
- Ant的任务(task)
- Ant 常用任务练习(copy,move,delete,mkdir,javac,java,jar)
- Ant Task:Ant任务(执行多个构件文件)
- Ant的使用 - 常用任务标签