2017-08-31 71 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

相关问题