多项目非子项目的Gradle中间目录

时间:2014-01-09 08:44:38

标签: java gradle multi-project

Gradle multiproject structure

在RootProject中,我有build.gralde和settings.gradle。 common,subProj1和subProj2是settings.gradle中的子项目

intermediateDir 不是子项目!它仅用于对subProj1,subProj2进行分组,因为它们是相关的。

每次我在根目录中运行“gradle eclipse”时,我都会在intermediateDir中获得.classpath和.project文件,我不应该这样做,因为这不是子项目!所以基本上middleDir被认为是某些任务的子项目,即使不在settings.gradle中也是如此。有什么快速的解决方法吗?

1 个答案:

答案 0 :(得分:5)

您编写settings.gradle的方式,中间目录子项目。这通常是可取的,因为它允许您一次性轻松配置和执行其子项目,即使中间项目没有自己的任何文件或任务。

要消除中间项目的不需要的行为,请确保不要将该行为(例如apply plugin: "eclipse")应用于该项目(可能您现在正在将其应用于allprojects),或者将settings.gradle更改为不创建中间项目。例如:

include "common"   
// name it any way you like, but not 
// "intermediateDir:subProj1", i.e. no ":"
include "subProj1" 
include "subProj2"

project(":subProj1").projectDir = file("intermediateDir/subProj1")
project(":subProj2").projectDir = file("intermediateDir/subProj2")