Xml 在ant项目中更改basedir

Xml 在ant项目中更改basedir,xml,ant,Xml,Ant,我有一个项目列表,每个项目都有ant构建脚本,我需要编写另一个ant脚本来调用所有其他脚本(即:从一个构建脚本构建所有项目),我想到了这样的事情: <?xml version="1.0"?> <project basedir="../path/of/the/destination/project" default="build" name="Main Builder"> <target name="build"> <ant ant

我有一个项目列表,每个项目都有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>
<?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>

发现
ant
任务具有一个属性
dir
,该属性定义了在何处执行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>
<?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>


请显示您的文件夹结构。所有项目都在同一目录中。为什么在同一目录中有多个ant文件?难道您不能拥有一个build.xml并只添加目标吗?为什么要将basedir设置为目标,而不是项目实际的基本目录(即)。尝试了这个方法,但没有成功,这使得它在父目录中生成。