看后要回帖的(绝对经典)
下面我们继续我们的ant开发旅程。。。。。
这篇文章讲述的是ant的核心任务 。。。很强大的希望大家看后能给我留言。。。
核心任务按顺序介绍:
- ant :基于另一个构建文件中的一个目标调用Ant
- antcall:调用当前构建文件中的一个目标
- antstructure:为Ant构建文件创建一个XML DTD(主要是用与以前的build.xml)
- apply:基于一组文件执行一个系统命令
- available:如果某资源可用,则设置一个特性
- chomd:设置文件和目录的权限(仅限于Unix平台)
- condition:如果某个条件为true,则设置一个特性
- copy:复制
- cvs:执行CVS
- cvspass:为一个cvspass文件增加一个口令。相当于CVS的login命令
- delete:删除
- dependset:管理依赖
- ear:创建EAR文件
- echo:写log
- exec:执行一个本地系统命令
- fail:失败log
- filter:为工程添加一个过滤器
- fixcrlf:清除制表符等
- genkey:添加密钥
- get:得到一个URL
- gunzip:解压缩一个GZip文件
- gzip:创建一个GZip文件
- jar:创建一个Jar文件
- java:执行一个java类
- javac:编译java代码
- javadoc:欲行javadoc
- mail:使用SMTP发送email
- mkdir:创建目录
- move:移动文件
- parallel:并行执行多个任务
- patch:对源文件应用一个diff文件
- pathconvert:将Ant路径转换文平台路径
- record:记录信息
- replace:字符串转换
- sequential:顺序的执行多个任务
- signjar:执行javasign命令行工具
- sleep:暂停Ant
- sql:利用JDBC执行SQL
- style:完成xslt转换
- tar:创建tar
- taskdef :为当前工程增加定制任务
- touch:更新时间
- tstamp:设置时间DSTAMP,TSTAMP,TODAY
- unjar,untar,unwar:相同为解压
- uptodate:更新情况
- war:创建war
- zip:创建zip
好了Ant的核心任务介绍完了,那么我们就实现一下个别我感觉重点的任务。。。。嘻嘻如果想深入了解请给我留言。。。
那么我们开始了:
1.ant和antcall连用
首先我的调用格式为
build.xml---------test.xml-----------buildtest.xml
然后下面的是构建文件的配置:
<?xml version="1.0" encoding="UTF-8"?> <project name="build" basedir="." default="all"> <!--Set the property of the dir --> <property name="testdir" value="testdir" /> <property name="buildlib" value="build/lib" /> <ant dir="build" target="create" antfile="buildtest.xml"/> <ant antfile="test.xml" target="test" > <property name="builddir" value="transfer" /> </ant> <ant antfile="test.xml" target="testinheritall" /> <target name="all"> <mkdir dir="testdir" /> </target> <target name="clean"> <delete dir="${testdir}" /> <delete dir="test" /> </target> <target name="cleanlib" > <antcall target="clean" inheritall="false"> <param name="testdir" value="build/lib" /> </antcall> </target> </project>
<?xml version="1.0" encoding="UTF-8"?> <project name="test" basedir="." default="test" > <target name="all" > <mkdir dir="test" /> </target> <target name="test" > <echo message="${builddir} is the branch of the build " /> <echo message="${builddir} is comming" /> </target> <target name="testinheritall" > <antcall target="all" inheritall="false" /> </target> </project>
<?xml version="1.0" encoding="UTF-8"?> <project name="buildtest" basedir="." default="create" > <target name="create" > <mkdir dir="lib" /> </target> <target name="clean" > <delete dir="lib" /> </target> </project>
好了然后我们运行下,看看结果:
Buildfile: E:\JavaPortlet\AntDemo5\build.xml
create:
[mkdir] Created dir: E:\JavaPortlet\AntDemo5\build\lib
test:
[echo] transfer is the branch of the build
[echo] transfer is comming
testinheritall:
all:
[mkdir] Created dir: E:\JavaPortlet\AntDemo5\test
all:
[mkdir] Created dir: E:\JavaPortlet\AntDemo5\testdir
BUILD SUCCESSFUL
Total time: 453 milliseconds
创建了3个文件夹。。。。成功。
2.antstructure和apply
举了个小例子如下:
<?xml version="1.0" encoding="UTF-8"?> <project name="creatDTD" basedir="." default="create" > <target name="create" > <mkdir dir="build" /> </target> <apply executable="type" vmlauncher="false" os="Windows XP" > <fileset dir="."> <include name="build.xml" /> </fileset> </apply> <echo file="project.log">this is a project log</echo> <target name="createDTD" > <antstructure output="project.dtd"/> </target> </project>
Buildfile: E:\JavaPortlet\AntDemo6\build.xml
[apply] <?xml version="1.0" encoding="UTF-8"?>
[apply] <project name="creatDTD" basedir="." default="create" >
[apply] <target name="create" >
[apply] <mkdir dir="build" />
[apply] </target>
[apply] <apply executable="type" vmlauncher="false" os="Windows XP" >
[apply] <fileset dir=".">
[apply] <include name="build.xml" />
[apply] </fileset>
[apply] </apply>
[apply] <echo file="project.log">this is a project log</echo>
[apply] <target name="createDTD" >
[apply] <antstructure output="project.dtd"/>
[apply] </target>
[apply] </project>
create:
BUILD SUCCESSFUL
Total time: 922 milliseconds
好了。。下一篇文章将继续我们的旅程。。。。。。