Jam*_*rie 5 gradle gradle-plugin
我正在尝试使用该java-platform插件在多模块项目中共享依赖项约束。我想做的是设置一个名为的模块platform,我可以platform(project(":platform"))在其他模块中使用它导入。此外,我想使用platform("group-id:of-the-bom:and-version").
一个例子是以下结构:
// settings.gradle
include("platform")
include("consumer")
Run Code Online (Sandbox Code Playgroud)
// platform/build.gradle
apply plugin: 'java-platform'
repositories {
mavenCentral()
}
dependencies {
constraints {
api platform("org.wildfly.bom:wildfly-javaee8:15.0.1.Final")
}
}
Run Code Online (Sandbox Code Playgroud)
// consumer/build.gradle
apply plugin: 'java-library'
repositories {
mavenCentral()
}
dependencies {
implementation platform(project(":platform"))
implementation "org.jboss.spec.javax.ejb:jboss-ejb-api_3.2_spec"
}
Run Code Online (Sandbox Code Playgroud)
当我运行时,gradle consumer:dependencies我得到包含以下内容的输出:
compileClasspath - Compile classpath for source set 'main'.
+--- project :platform
\--- org.jboss.spec.javax.ejb:jboss-ejb-api_3.2_spec FAILED
Run Code Online (Sandbox Code Playgroud)
似乎该platform模块没有“重新导出”通过使用platform().
我发现了两个“解决方法”,它们并没有真正解决我的问题,但似乎表明问题是platform()与java-platform插件一起使用:
implementation platform(project(":platform"))为implementation platform("org.wildfly.bom:wildfly-javaee8:15.0.1.Final")in consumer/build.gradle。platform/build.gradle诸如api org.jboss.spec.javax.ejb:jboss-ejb-api_3.2_spec:1.0.1.Final.该java-platform插件是否不打算以这种方式使用,还是我缺少某些配置选项?
Lou*_*met 12
在 Gradle 中导入 BOM 意味着您希望依赖BOM 来应用其提供的约束。
默认情况下,您添加到平台的是约束。但是约束仅当且仅当存在匹配的依赖声明时才会出现在图中。此外,约束仅告知目标模块。他们从不带来任何传递信息。
所以你需要做的就是声明你的platform项目依赖于BOM。然后它将按预期导出其约束。
// platform/build.gradle
apply plugin: 'java-platform'
repositories {
mavenCentral()
}
javaPlatform {
// Declare that your platform contains dependencies
allowDependencies()
}
dependencies {
// This is a dependency on the BOM that will bring its constraints transitively
api platform("org.wildfly.bom:wildfly-javaee8:15.0.1.Final")
constraints {
// Additional constraints not covered by the platform above go here
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2196 次 |
| 最近记录: |