gpt4 book ai didi

gradle - Gradle BOM导入支持如何动态解决插件中添加的依赖项版本?

转载 作者:行者123 更新时间:2023-12-03 05:05:15 26 4
gpt4 key购买 nike

我使用Spring Boot和Spring Boot Dependency Management Plugin,这可以帮助我使用Spring Boot BOM中的依赖项。但是,从版本5.0开始, Gradle支持BOM的导入。 我决定迁移到Gradle built-in BOM import support。但是我遇到了这个问题:
我使用具有动态添加的依赖项的自定义Gradle插件:

open class MyCustomPlugin : Plugin<Project> {
override fun apply(project: Project): Unit = project.run {
project.dependencies.add("jooqRuntime", "org.postgresql:postgresql")
}
}

这个插件依赖于另一个插件
dependencies {
implementation("nu.studer:gradle-jooq-plugin:4.1")}

因此,我可以从该插件获取PostgreSQL的版本。现在我不能做同样的事情。如何动态解决插件中添加的依赖项?

最佳答案

Spring的依赖管理插件有点繁重。它会触及的所有配置,因为您可以通过all()调用来看到here

本地Gradle解决方案经过优化或“更智能”,仅“触摸”其所需的配置。您可以在this对话中了解更多差异。

因此,这里的解决方案是按照Gradle调用的jooqRuntime配置导入BOM或平台。这可以在您的项目中完成:

dependencies {
"jooqRuntime"(platform("org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE")
}

或直接在插件中(Java示例):
public class MyCustomPlugin implements Plugin<Project> {

@Override
public void execute(Project project) {
DependencyHandler dependencies = project.getDependencies();
dependencies.add("jooqRuntime", dependencies.platform("org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE"));
}

}

关于gradle - Gradle BOM导入支持如何动态解决插件中添加的依赖项版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60437494/

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