将多项目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是正确的java项目 .
什么是避免空洞人工制品的最佳方法?
1 回答
您可以尝试使用他们在Gradle's own settings.gradle文件中使用的技巧 . 请注意每个子项目如何位于
'subprojects/${projectName}'
文件夹中,但subprojects
文件夹本身不是项目 .所以在你的情况下你会做类似的事情:
我故意省略了
compA
和api
之间的冒号,以确保source:compA
不会被评估为项目容器 .或者,您可以尝试通过执行以下操作来排除
source:compA
项目的source:compA
插件:Edit: 或者您可以尝试这样的事情(根据您的喜好调整):