使用ANT在单个构建文件中构建多个项目并清理多个项目

时间:2012-03-21 18:41:52

标签: ant build projects code-cleanup

我有一个疑问,我制作了这个构建文件,以便构建3个不同的项目

<?xml version="1.0" encoding="UTF-8"?>
<project name="Trinity" basedir="." default="buildall">

   <target name="project1">
        <ant dir="C:/work/project1"/>
   </target>

   <target name="project2" depends="project1">
        <ant dir="C:/work/project2"/>
   </target>

   <target name="project3" depends="project1, project2">
        <ant dir="C:/work/project3"/>
   </target>

   <target name="buildall" depends="project3"/>

</project>

现在正在运作。但是我还要在构建之前清理项目。

事实上我想要完成这个: C:/ work / project1 ant clean build C:/ work / project2 ant clean build C:/ work / project3 ant clean build

提前致谢。

更新:感谢Alex的快速响应,我做了一个新的build.xml文件,其中包含以下内容。而且我相信效果很好,你怎么看?。

<?xml version="1.0" encoding="UTF-8"?>
<project name="Trinity" basedir="." default="buildall">

   <target name="project1">
        <ant dir="C:/work/project1" target="clean"/>
        <ant dir="C:/work/project1" target="build"/>
   </target>

   <target name="project2" depends="project1">
        <ant dir="C:/work/project2" target="clean"/>
        <ant dir="C:/work/project2" target="build"/>
   </target>

   <target name="project3" depends="project1, project2">
        <ant dir="C:/work/project3" target="clean"/>
        <ant dir="C:/work/project3" target="build"/>
   </target>

   <target name="buildall" depends="project3"/>

</project>

感谢。

1 个答案:

答案 0 :(得分:1)

根据ant task,您可以指定外部ant构建文件的目标

<ant dir="C:/work/project1" target="clean build">

修改

根据蚂蚁文件:

  

您可以使用嵌套元素而不是使用target属性指定多个目标。执行这些操作就好像Ant已使用单个目标调用,该目标的依赖关系是指定的目标,按指定的顺序。

所以你可以用这种方式列出多个目标:

<ant dir="C:/work/project1">
    <target name="clean" />
    <target name="build" />
</ant>

或者,你可以在名为cleanBuild的Project1,2,3 build.xml文件中定义一个新目标,如果你想保留它,它将依次调用clean,然后调用build作为单个xml元素<ant dir="C:/work/project1" target="cleanBuild">