0

我有一个多模块 gradle 构建,其中包含可重用组件项目的集合和使用公共组件的应用程序集合。

.
├── build.gradle.kts
├── components
│   ├── blob
│   ├── clock
│   ├── database
│   ├── email
│   ├── json
│   └── web
├── gradle.properties
├── platform
│   ├── build.gradle.kts
│   └── settings.gradle.kts
├── settings.gradle.kts
└── app
    ├── api
    └── ui

在上面的示例树结构app:api项目中可以使用components:clock项目。我想发布所有组件项目的物料清单 (BOM),以便我可以将组件移动到它自己的存储库中。

如何配置 gradle 以从子项目集合中发布 BOM?

4

1 回答 1

2

Gradle 提供了一个特殊的插件来生成 BOM 工件(在 Gradle 世界中称为平台)

您可以使用 java-platform 插件声明它们。

https://docs.gradle.org/current/userguide/java_platform_plugin.html

您可以创建一个引用所有组件项目的附加子项目。maven-publish 插件开箱即用,与常规 java 项目几乎相同,并将发布 BOM POM。

我手头没有任何 Kotlin 语法示例,但基本上声明看起来与常规依赖项几乎相同,但有一个额外的约束块:

plugins {
    `java-platform`
}

dependencies {
    constraints {
        api project(":lib")
    }
}
于 2020-12-16T12:21:15.283 回答