我正在使用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之后,应该正确解决此依赖关系。
我哪里错了?
答案 0 :(得分:0)
您正在讨论传递依赖关系,您可以使用gradle控制这些依赖关系。我建议您阅读Gradle Docs中的Dependency Management
:
https://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'
}
}
}