2017-08-31 38 views
0

我想實現以下層次的螞蟻:Ant項目包含多個文件夾建立

ParentProject

build.xml 
RuntimeFolder_1 
    build.xml 
RuntimeFolder_2 
    build.xml 
RuntimeFolder_n 
    build.xml 

在這裏,當我建立ParentFolder的build.xml,應該遍歷所有子文件夾和建設他們。用戶可以添加任意數量的運行時間文件夾。 另外,我應該能夠單獨構建RuntimeFolder_1 ... RuntimeFolder_n。 有人知道我該怎麼做?

+0

第1步:停止使用螞蟻。第2步:開始使用[Gradle](https://docs.gradle.org/current/userguide/java_plugin.html) –

+0

我可以使用Gradle輕鬆完成任何示例嗎? –

+0

當然可以做到,解決方案取決於你希望如何工作。你是否想要一個單一的多項目構建,它是一起構建和發佈的,並且存在於單個源代碼庫中(具有項目之間的依賴關係)?或者你是否想要許多單獨的構建版本,這些版本可以單獨發佈,並且可以存在於獨立的源代碼庫(也包含相互依賴關係)和一個「超級」版本一起執行它們? –

回答

0

對於這一點,我們可以使用subant:http://ant.apache.org/manual/Tasks/subant.html下面是例子:

父build.xml文件將包含:

<macrodef name="iterate"> 
    <attribute name="target"/> 
    <sequential> 
     <subant target="@{target}"> 
      <fileset dir="modules" includes="*/build.xml"/> 
     </subant> 
    </sequential> 
</macrodef> 
<target name="compile"> 
    <iterate target="compile"/> 
</target> 

文件夾裏面的build.xml將包含這些目標。

1

我知道OP請求的螞蟻,但他曾表示在搖籃解決方案的興趣可能看起來像

build.gradle 
settings.gradle 
project1/ 
    build.gradle 
project2/ 
    build.gradle 
project3/ 
    build.gradle 

settings.gradle可能看起來像

rootDir.listFiles().each { 
    if (new File(it, 'build.gradle').exists()) { 
     include ":$it.name" 
    } 
} 

你最好再應用java插件到每個子項目。這可以以編程的根做build.gradle

subprojects { 
    apply plugin: 'java' 
} 

或者在每個subproject\build.gradle

apply plugin: 'java' 

進一步的閱讀可見multi project buildsjava plugin

相關問題