gpt4 book ai didi

gradle - 使用gradle插件Java平台发布BOM(作为pom.xml)

转载 作者:行者123 更新时间:2023-12-03 04:50:18 25 4
gpt4 key购买 nike

我正在设置一个特定于项目的BOM,它将“继承”其他BOM的定义(可从pom.xml获得),并且还定义自己的托管依赖项。

我在build.gradle.kts中尝试了以下内容(如java-platform docs中所述):

plugins {
`java-platform`
`maven-publish`
}

dependencies {

constraints {
api(platform("org.camunda.bpm:camunda-bom:${Versions.camunda}"))
}
}

publishing {
publications {
create<MavenPublication>("camunda-bom") {
from(components["javaPlatform"])
}
}
}

但是,当我执行 gradle publishToLocalMaven并检查 .m2/repositories中生成的pom.xml时,它看起来像:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.camunda.bpm</groupId>
<artifactId>camunda-bom</artifactId>
<version>7.10.0</version>
<scope>compile</scope>
</dependency>
</dependencies>

由于导入poms的语法应为
  ...
<type>pom</type>
<scope>import</scope>
...

如何使用gradle将有效的BOM表发布为pom.xml(使用5.3.1版)?

最佳答案

您将BOM定义为constraint,但这很可能不是您想要的。
平台上的约束条件只是说,如果该依赖关系在其他地方进入图形,则应使用该约束条件的platform部分和该约束条件的版本建议。

如果您希望该BOM的约束对您的平台的使用者可见,那么您需要通过执行以下操作将BOM作为platform dependency添加:

javaPlatform {
allowDependencies()
}
dependencies {
api(platform("org.camunda.bpm:camunda-bom:${Versions.camunda}"))
}

然后,它将在Maven中作为内联BOM表正确发布。

关于gradle - 使用gradle插件Java平台发布BOM(作为pom.xml),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55687995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com