如何正确更新Spring Boot依赖项

时间:2017-07-21 10:00:35

标签: java eclipse spring-boot gradle

我正在使用Eclipse Neon和Gradle 4进行多项目。
使用Spring Boot以及 spring-boot-gradle-plugin

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }

    dependencies {
        classpath "com.github.ben-manes:gradle-versions-plugin:0.15.0",
            "org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE"
    }

}

使用gradle.properties文件可以控制要使用的版本 今天我将Spring改为spring.version=4.3.10.RELEASE 我用过Eclipse> Gradle> Gradle Refresh Project不止一次。
gradle-version-plugin 仍然抱怨其中一个依赖项的较新版本。

com.sun.mail:javax.mail [1.5.6 -> 1.6.0]

此依赖关系来自Spring Boot,如您所见,默认情况下应为1.6.0 我只是因为 spring-boot-gradle-plugin 而没有指定此版本。

compile "com.google.guava:guava:${project.'google.guava.version'}",
        "joda-time:joda-time",
        "com.sun.mail:javax.mail"

我的期望是,在Gradle Refresh之后,应该正确解决此依赖关系。

我哪里错了?

1 个答案:

答案 0 :(得分:0)

您正在讨论传递依赖关系,您可以使用gradle控制这些依赖关系。我建议您阅读Gradle Docs中的Dependency Managementhttps://docs.gradle.org/current/userguide/dependency_management.html

您可以这样做:

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        if (details.requested.group == 'com.sun.mail' && details.requested.name == 'javax.mail') {
            details.useVersion '1.6.0'
        }
    }
}