当前位置: 首页 > 知识库问答 >
问题:

使用Gradle5.1“实现平台”代替Spring依赖管理插件

李永寿
2023-03-14
trait ConfigureDependencyManagement {
    void configureDependencyManagement(final Project project) {
        assert project != null

        project.apply(plugin: "io.spring.dependency-management")

        final DependencyManagementExtension dependencyManagementExtension = project.extensions.findByType(DependencyManagementExtension)
        dependencyManagementExtension.imports {                 
            mavenBom "org.springframework.boot:spring-boot-dependencies:2.1.0.RELEASE"
        }
     }
  }

虽然这在Gradle5.1中仍然有效,但我想用新的BOM导入依赖机制替换Spring依赖管理插件,所以我将上面的内容更新为:

trait ConfigureDependencyManagement {
    void configureDependencyManagement(final Project project) {
        assert project != null

        project.dependencies.platform("org.springframework.boot:spring-boot-dependencies:2.1.0.RELEASE")
    }
}

不幸的是,这种改变意味着这些BOM定义的依赖项都没有被导入,我在构建项目时会遇到这样的错误?

找不到org.springframework.boot:spring-boot-starter-web:。要求方:项目:

共有1个答案

陈知
2023-03-14

Gradle5中的平台支持可以取代Spring依赖管理插件用于BOM消耗。然而,Spring插件提供了Gradle支持没有涵盖的特性。

关于您的问题,问题来自以下一行:

project.dependencies.platform("org.springframework.boot:spring-boot-dependencies:2.1.0.RELEASE")

这将简单地创建一个依赖项,它仍然需要添加到配置中。通过做类似的事情:

def platform = project.dependencies.platform("org.springframework.boot:spring-boot-dependencies:2.1.0.RELEASE")
project.dependencies.add("configurationName", platform)
 类似资料:
  • War插件增加了名为providedCompile和providedRuntime的两个依赖配置.这两个配置有相同的作用域在编译或者运行时的配置,不同之处在于是否会将war文件归档.很重要的一点是它们都会提供配置传递.比如在任意的provided配置中添加了commons-httpclient:commons-httpclient:3.0,该依赖依赖于commons-codec,因为这个一个”pr

  • Java 插件给项目增加了许多关于依赖的配置, 如下所示, 这些配置被分配给许多任务, 比如 compileJava 和 test 等配置 表22.5.Java插件-依赖配置 名称 扩展 被使用时运行的任务 含义 compile - compileJava 编译时的依赖 runtime compile - 运行时的依赖 testCompile compile compileTestJava 编译测

  • 最近,我发现了以下问题: 当我为我的项目设置依赖项管理时,我有一个child-pom,它使用具有依赖项的插件,我想要与在我的依赖项管理中声明的依赖项同步。 在根pom中,我在依赖项管理中声明: 在子pom中,我有一个插件需要gwt-user: 但是,如果我移除gwt-maven-plugin中使用的依赖版本,编译就会失败。 是不是还有别的办法可以实现呢? PS:在maven和maven插件中有一个

  • 依赖管理实战 在前面我们学习了怎么使用Jetty插件来使用自带的Jetty容器来部署一个TODo应用,Jetty是一个轻量级的开发容器,启动非常快。很多企业级的应用都使用其他的Web容器来部署应用,假设你使用的是Apache Tomcat。

  • 从版本4.3.0开始,Cordova提供了保存和恢复平台和插件的能力。 这个特性允许开发者保存和恢复他们的app到一个已知的状态,而不用去检测所有平台和插件的源代码。 'save'命令存储app平台和插件的详细版本信息到config.xml里面。当一个'cordova prepare'命令发出,通过利用先前保存在config.xml里面的信息, 'restore'步骤就会自动执行。 下面场景,sa

  • 到 。 让我惊讶的是,通过创建的fat jar不再包含下所需的lib了吗?如果我将“实现”替换为“编译”,它就会像预期的那样工作。 有什么东西需要配置以便spring-boot-plugin添加它们吗?还是需要提前将项目升级到spring Boot2?