ant 执行多个构建文件

如果需要在一个构件文件中通过Ant命令去执行另一个Ant项目,或者说要执行本项目的子项目的构件文件。这时Ant这个核心任务就派上用场了。简单地说Ant任务的作用就相当于在命令行通过Ant命令执行构件文件。值得注意的是Ant任务依赖于target元素,需要在某个target元素中使用,不能在target元素外独立使用。

Ant任务还可以实现类似Java程序间的继承关系,不过对于这个核心任务来说只继承property元素和reference属性。举个例子说,项目A中包含通过Ant任务去执行的项目B,而项目B中需要用到项目A中的属性C,那么可以通过设置的Ant任务中的inheritAll属性,使得在B项目中可以使用项目A中的属性C。从另一方面看,这也符合XP(极限)编程中的细分功能的思想,可以把大的项目切分为几分小项目,然后通过Ant工具进行整合。

项目结构:

project

-build.xml

-build1.xml

-build2.xml

-build3.xml

-file.properties

build.xml:


 
  1. <?xmlversion="1.0"?>
  2. <projectdefault="run"basedir="."name="MyProject">
  3. <propertyfile="user.properties"/>
  4. <targetname="run">
  5. <antantfile="${file1}"dir="."output="file1.log"target="call"/>
  6. <antantfile="${file2}"dir="."/>
  7. <antantfile="${file3}"dir="."/>
  8. </target>
  9. </project>

build1.xml


 
  1. <?xmlversion="1.0"?>
  2. <projectdefault="init"basedir="."name="MyProject1">
  3. <targetname="init">
  4. <echomessage="ThisisinProject1'sinittarget."/>
  5. </target>
  6. <targetname="call">
  7. <echomessage="ThecallinProject1"/>
  8. </target>
  9. </project>

build2.xml


 
  1. <?xmlversion="1.0"?>
  2. <projectdefault="call"basedir="."name="MyProject2">
  3. <targetname="init">
  4. <echomessage="ThisisinProject2'sinittarget."/>
  5. </target>
  6. <targetname="call"depends="init">
  7. <echomessage="ThecallinProject2"/>
  8. </target>
  9. </project>

build3.xml


 
  1. <?xmlversion="1.0"?>
  2. <projectdefault="call"basedir="."name="MyProject3">
  3. <targetname="init">
  4. <echomessage="ThisisinProject3'sinittarget."/>
  5. </target>
  6. <targetname="call">
  7. <echomessage="ThecallinProject3"/>
  8. </target>
  9. </project>

file.properties


 
  1. file1=build1.xml
  2. file2=build2.xml
  3. file3=build3.xml


运行结果:


 
  1. Buildfile:C:\hxw\workspace\hibernate\build.xml
  2. run:
  3. call:
  4. [echo]ThecallinProject1
  5. init:
  6. [echo]ThisisinProject2'sinittarget.
  7. call:
  8. [echo]ThecallinProject2
  9. call:
  10. [echo]ThecallinProject3
  11. BUILDSUCCESSFUL
  12. Totaltime:78milliseconds

本文出自 “坠落凡间的天使” 博客,请务必保留此出处http://hongxuwei.blog.51cto.com/2928285/649384


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值