我有一个项目列表,每个项目都有ant build脚本,我需要编写一个调用所有其他脚本的anther ant脚本(即:从一个构建脚本构建所有项目),我想到了类似的东西:
<?xml version="1.0"?>
<project basedir="../path/of/the/destination/project" default="build" name="Main Builder">
<target name="build">
<ant antfile="first.xml"/>
<ant antfile="second.xml"/>
<!--And so on-->
</target>
</project>
问题是basedir
属性必须是要构建的项目之一,因此每次构建下一个项目之前都需要更改。
我怎么能这样做?
答案 0 :(得分:4)
发现ant
任务需要一个属性dir
来定义执行ant脚本的位置,所以它会是这样的:
<?xml version="1.0"?>
<project basedir="../path/of/the/parent/directory" default="build" name="Main Builder">
<target name="build">
<ant antfile="buildScript1.xml" dir="project1"/>
<ant antfile="buildScript2.xml" dir="project1"/>
<ant antfile="buildScript3.xml" dir="project1"/>
<!--And so on-->
</target>
</project>
答案 1 :(得分:0)
您basedir
应指向包含所有项目的目录,然后在antfile
中提供相对路径。这样做:
<?xml version="1.0"?>
<project basedir="../path/of/the/destination" default="build" name="Main Builder">
<target name="build">
<ant antfile="project1/buildScript.xml"/>
<ant antfile="project2/buildScript.xml"/>
<ant antfile="project3/buildScript.xml"/>
<!--And so on-->
</target>
</project>