我有2个模块,我们称它们为A,B。
模块A .gradle是
dependencies {
compileInclude group: "Service1", name: "Service1", version: "$rootProject.ext.Service1"
compileInclude group: "Service2", name: "Service2", version: "$rootProject.ext.Service2"
compileInclude group: "Service3", name: "Service3", version: "$rootProject.ext.Service3"
}
模块B .gradle是
dependencies {
compileOnly project(":modules:ModuleA")
}
我想在模块B中使用模块A的Service1.Jar,而不必在模块B中重新制造另一个。
这可能吗?
答案 0 :(得分:0)
您要问的是有关传递依赖项管理的信息。
Gradle在使用java-library
plugin时即开即用:
api
配置中的所有内容都会暂时暴露给使用者的 compile 类路径,implementation
配置中的所有内容仅公开给使用者的运行时类路径。现在,将模块编译所需的任何内容提升到第一级依赖关系也被视为最佳实践。这样可以防止依赖关系消失,如果通过传递使它消失的模块不再这样做的话。
但是我不知道compileInclude
配置来自何处,以及它如何参与模块公开的内容。
并且您不应再在模块B中使用compile
。