我第一次尝试使用Gradle(3.5)的复合构建,我需要包含一个库,它是另一个项目的子项目(都是Java):
> gradle projects
:projects
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'projects'
+--- ...
+--- Project ':common' <-- this is a library I need
+--- ...
Gradle documentation仅提供单模块项目的示例,但直接指定common
目录的路径(即includeBuild '../../projects/common'
)不是一个选项,因为它最终会产生预期的错误:< / p>
FAILURE: Build failed with an exception.
...
* What went wrong:
A problem occurred evaluating project ':common'.
> Could not find method sourceSets() for arguments [build_9fu2oyxlwh2mr0i7k6l680fpz$_run_closure1@66e1cb67] on project ':common' of type org.gradle.api.Project.
另一个合适的功能是substitutions,但我不知道如何将它应用到我的案例中。我还没有在文档中看到任何statements告诉我这样的包含是不可能的。取决于整个projects
是不对的,因为它是非常重的回购。
所以问题是: 如何在Gradle组合构建中声明对某个子项目的依赖?