【发布时间】:2012-06-24 12:04:20
【问题描述】:
在我们的项目中应用多项目 Gradle 结构时,我的 settings.gradle 如下所示:
include "source:compA:api"
include "source:compA:core"
include "source:compB"
gradle 项目给我
Root project 'tmp'
\--- Project ':source'
+--- Project ':source:compA'
| +--- Project ':source:compA:api'
| \--- Project ':source:compA:core'
\--- Project ':source:compB'
这正是目录结构!
在我的根目录中,我有一个 build.gradle,它将 java 插件应用于所有子项目:
subprojects {
apply plugin: 'java'
}
在构建时,我最终得到了 :source:compA 的工件,它们是空的,因为这实际上不是一个项目,只是子目录 api 和 core em> 是正确的 Java 项目。
避免出现空工件的最佳方法是什么?
【问题讨论】:
-
为什么不直接将Java插件应用到各自脚本中的api和core呢?
-
我可以这样做,但我的实际项目结构更加嵌套,有很多项目。我认为这是遗留项目结构的常见问题。而且我正在寻找一种灵活的解决方案,每个项目都不需要了解它所处的构建过程。
-
恕我直言,子模块应该明确知道它是一个 Java 项目。与在根级别声明此信息相比,这对于任何查看它的人来说都更具表现力。
标签: gradle gradle-multi-project-build