如何从gradle子项目中生成bom?

uqxowvwt  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(856)

我有一个多模块的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),这样我就可以将组件移动到它自己的repo中。
如何将gradle配置为从子项目集合中发布bom表?

rhfm7lfc

rhfm7lfc1#

gradle提供了一个特殊的插件来生成bom工件(在gradle世界中称为平台)
您可以使用java平台插件声明它们。
https://docs.gradle.org/current/userguide/java_platform_plugin.html
可以创建引用所有组件项目的附加子项目。maven发布插件开箱即用,与常规java项目的工作原理基本相同,它将发布bom pom。
我手头没有kotlin语法的任何示例,但基本上声明看起来与常规依赖项几乎相同,但有一个附加的约束块:

plugins {
    `java-platform`
}

dependencies {
    constraints {
        api project(":lib")
    }
}

相关问题