如何将模块的jar作为依赖项包含在Gradle中的另一个模块中?

时间:2019-02-25 14:58:33

标签: gradle liferay-7

我有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中重新制造另一个。

这可能吗?

1 个答案:

答案 0 :(得分:0)

您要问的是有关传递依赖项管理的信息。

Gradle在使用java-library plugin时即开即用:

  • 放置在api配置中的所有内容都会暂时暴露给使用者的 compile 类路径,
  • 放在implementation配置中的所有内容仅公开给使用者的运行时类路径。

现在,将模块编译所需的任何内容提升到第一级依赖关系也被视为最佳实践。这样可以防止依赖关系消失,如果通过传递使它消失的模块不再这样做的话。

但是我不知道compileInclude配置来自何处,以及它如何参与模块公开的内容。

并且您不应再在模块B中使用compile