2014-01-09 53 views
2

Gradle multiproject structure摇篮多项目的中间目录不子项目

在RootProject,我有build.gralde和settings.gradle。 常见,subProj1和subProj2在settings.gradle

intermediateDir 子项目IS NOT子项目!它仅用于将subProj1,subProj2分组,因为它们是相关的。

每次我在根目录下运行“gradle eclipse”时,我都会在middleDir中获得.classpath和.project文件,我不应该这样做,因为这不是子项目!所以基本上middleDir被认为是一些任务的子项目,即使不在settings.gradle中。任何快速解决这个问题?

回答

4

你写的方式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") 
+0

你先生是上帝。我知道这将是你的答案,下次我会问名义上,只是开玩笑,但是,是的,好工具。不应用eclipse插件的选项可能适用,但我想在通用插件的根build.gradle中的“子项目{...}”中应用。 – dalvarezmartinez1