2012-03-21 70 views
0

我有一個疑問,我爲了建立3個不同的項目建立在一個單一的構建文件的多個項目和清潔多個項目與ANT

<?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> 

這是現在正在做這個build文件。但是我也想在構建之前清理這個項目。

其實我想acomplish這樣的: C:/工作/ PROJECT1螞蟻乾淨的構建 C:/工作/項目2螞蟻乾淨的構建 C:/工作/項目3螞蟻乾淨的構建

在此先感謝。

更新:感謝來自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

停止!你真的有三個項目嗎?如果是這樣,然後使用[Ivy](http://ant.apache.org/ivy/)來管理它們作爲單獨的項目,並拋棄你的父構建文件。如果沒有,那麼你的一個項目的三個部分只有一個構建文件(http://www.build-doctor.com/2008/03/19/ant-best-practices-prefer-a-single-buildfile/ ) – 2012-03-22 00:02:44

回答

1

按照ant task,你可以指定外部螞蟻的目標構建文件

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

編輯:

根據螞蟻文檔:

可以指定多個目標使用嵌套元素而不是使用目標屬性。這些將被執行,就好像Ant已經按照指定的順序與一個單獨的目標進行了調用,這些目標的依賴關係是如此指定的目標。

所以,你可以列出多個目標是這樣的:

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

另外,您可以定義在Project1,2,3的build.xml文件名爲cleanBuild一個新的目標,這將依次調用clean其次通過build如果你想保留它作爲一個單一的XML元素<ant dir="C:/work/project1" target="cleanBuild">

+0

嗯..我試過,但不是acurate。這個命令「乾淨的構建」似乎沒有在我的工作。 – Juano7894 2012-03-21 20:27:57

+0

你有3個build.xml文件中的'clean'和'build'定義的目標嗎? – Alex 2012-03-21 20:30:09

+0

是的..如果我喜歡我在我的問題更新中說過的話,那麼就工作了。你知道更好的方法嗎? – Juano7894 2012-03-21 20:58:45