我有一个项目列表,每个项目都有ant构建脚本,我需要编写另一个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
属性必须是要构建的项目的属性,因此每次在构建下一个项目之前都需要进行更改。我该怎么做?
发现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>
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>