生活随笔
收集整理的這篇文章主要介紹了
ant 执行多个构建文件
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如果需要在一個(gè)構(gòu)件文件中通過(guò)Ant命令去執(zhí)行另一個(gè)Ant項(xiàng)目,或者說(shuō)要執(zhí)行本項(xiàng)目的子項(xiàng)目的構(gòu)件文件。這時(shí)Ant這個(gè)核心任務(wù)就派上用場(chǎng)了。簡(jiǎn)單地說(shuō)Ant任務(wù)的作用就相當(dāng)于在命令行通過(guò)Ant命令執(zhí)行構(gòu)件文件。值得注意的是Ant任務(wù)依賴(lài)于target元素,需要在某個(gè)target元素中使用,不能在target元素外獨(dú)立使用。
Ant任務(wù)還可以實(shí)現(xiàn)類(lèi)似Java程序間的繼承關(guān)系,不過(guò)對(duì)于這個(gè)核心任務(wù)來(lái)說(shuō)只繼承property元素和reference屬性。舉個(gè)例子說(shuō),項(xiàng)目A中包含通過(guò)Ant任務(wù)去執(zhí)行的項(xiàng)目B,而項(xiàng)目B中需要用到項(xiàng)目A中的屬性C,那么可以通過(guò)設(shè)置的Ant任務(wù)中的inheritAll屬性,使得在B項(xiàng)目中可以使用項(xiàng)目A中的屬性C。從另一方面看,這也符合XP(極限)編程中的細(xì)分功能的思想,可以把大的項(xiàng)目切分為幾分小項(xiàng)目,然后通過(guò)Ant工具進(jìn)行整合。
?
項(xiàng)目結(jié)構(gòu):
project
-build.xml
-build1.xml
-build2.xml
-build3.xml
-file.properties
?
build.xml:
<?xml?version="1.0"?>??<project?default="run"?basedir="."?name="MyProject">????? ?????<property?file="user.properties"/>????? ?????<target?name="run">?????????<ant?antfile="${file1}"?dir="."?output="file1.log"?target="call"/>?????????<ant?antfile="${file2}"?dir="."?/>?????????<ant?antfile="${file3}"?dir="."?/>?????</target>????? ?</project>? ?
build1.xml
<?xml?version="1.0"?>??<project?default="init"?basedir="."?name="MyProject1">????? ?????<target?name="init">?????????<echo?message="This?is?in?Project1's?init?target."/>?????</target>????? ?????<target?name="call">?????????<echo?message="The?call?in?Project1"/>?????</target>????? ?</project>? ?
build2.xml
<?xml?version="1.0"?>??<project?default="call"?basedir="."?name="MyProject2">??????<target?name="init">?????????<echo?message="This?is?in?Project2's?init?target."/>?????</target>????? ?????<target?name="call"?depends="init">?????????<echo?message="The?call?in?Project2"/>?????</target>????? ?</project>? ?
build3.xml
<?xml?version="1.0"?>??<project?default="call"?basedir="."?name="MyProject3">????? ?????<target?name="init">?????????<echo?message="This?is?in?Project3's?init?target."/>?????</target>????? ?????<target?name="call">?????????<echo?message="The?call?in?Project3"/>?????</target>????? ?</project>? ?
?
file.properties
file1=build1.xml ?file2=build2.xml ?file3=build3.xml?
運(yùn)行結(jié)果:
Buildfile:?C:\hxw\workspace\hibernate\build.xml ?run: ?call: ??????[echo]?The?call?in?Project1 ?init: ??????[echo]?This?is?in?Project2's?init?target. ?call: ??????[echo]?The?call?in?Project2 ?call: ??????[echo]?The?call?in?Project3 ?BUILD?SUCCESSFUL ?Total?time:?78?milliseconds? ?
轉(zhuǎn)載于:https://blog.51cto.com/hongxuwei/649384
總結(jié)
以上是生活随笔為你收集整理的ant 执行多个构建文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。