如何从 gradle 个子项目中发布 BOM?
How to pbulish a BOM out of gradle subprojects?
我有一个多模块 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
项目。我想从所有组件项目中发布 Material (BOM) 的清单,以便我可以将组件移动到它自己的仓库中。
如何配置 gradle 从子项目集合中发布 BOM?
Gradle 提供了一个特殊的插件来生成 BOM 工件(在 Gradle 世界中称为 Platforms)
您可以使用 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")
}
}
我有一个多模块 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
项目。我想从所有组件项目中发布 Material (BOM) 的清单,以便我可以将组件移动到它自己的仓库中。
如何配置 gradle 从子项目集合中发布 BOM?
Gradle 提供了一个特殊的插件来生成 BOM 工件(在 Gradle 世界中称为 Platforms)
您可以使用 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")
}
}