Gradle 未包括渐变冲突的可传递依赖项
我有一个依赖项,Gradle 未包括渐变冲突的可传递依赖项,gradle,Gradle,我有一个依赖项,myproject使用两个依赖项,它们使用不同版本的commons-lang3,但是当我构建war工件时,commons-lang3不包含在工件中。有什么不对劲吗 我的build.gradle看起来像: apply plugin: 'io.spring.dependency-management' apply plugin: 'java' apply plugin: 'maven-publish' apply plugin: 'war' buildscript { re
myproject
使用两个依赖项,它们使用不同版本的commons-lang3
,但是当我构建war
工件时,commons-lang3
不包含在工件中。有什么不对劲吗
我的build.gradle
看起来像:
apply plugin: 'io.spring.dependency-management'
apply plugin: 'java'
apply plugin: 'maven-publish'
apply plugin: 'war'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'io.spring.gradle:dependency-management-plugin:0.3.0.RELEASE'
}
}
compileJava {
sourceCompatibility = 1.7
targetCompatibility = 1.7
}
configurations.all {
exclude group: 'commons-logging'
}
repositories {
jcenter()
maven {
credentials {
username = "${artifactory_user}"
password = "${artifactory_password}"
}
url "myrepo.com"
}
}
dependencyManagement {
imports {
mavenBom 'io.spring.platform:platform-bom:1.1.2.RELEASE'
}
}
dependencies {
compile "my.project:my-project:1.0.0-SNAPSHOT"
// Spring Framework
compile 'org.springframework:spring-context'
compile 'org.springframework:spring-web'
compile 'org.springframework:spring-webmvc'
compile 'org.springframework.security:spring-security-config'
compile 'org.springframework.security:spring-security-web'
// Jackson
compile "com.fasterxml.jackson.core:jackson-annotations"
compile "com.fasterxml.jackson.core:jackson-core"
compile "com.fasterxml.jackson.core:jackson-databind"
// Logging
compile 'ch.qos.logback:logback-classic'
compile 'org.slf4j:slf4j-api'
runtime 'org.slf4j:jcl-over-slf4j'
runtime 'org.logback-extensions:logback-ext-loggly:0.1.2'
// Test
testCompile 'junit:junit'
testCompile 'org.mockito:mockito-core'
testCompile 'org.springframework:spring-test'
providedCompile 'javax.servlet:javax.servlet-api'
}
publishing {
publications {
mavenJava(MavenPublication) {
from components.web
}
}
repositories {
maven {
credentials {
username = "${artifactory_user}"
password = "${artifactory_password}"
}
if(project.version.endsWith('-SNAPSHOT')) {
url "myrepo.com/libs-snapshot-local"
} else {
url "myrepo.com/libs-release-local"
}
}
}
}
task wrapper(type: Wrapper) {
gradleVersion = '2.4'
}
编辑my.project的依赖关系图:my project
myproject
是我的同事编写的一个库项目,它依赖于另外两个包含commons-lang3
的库项目。下面是一个示例图
my.project:my-project:1.0.0-SNAPSHOT
+---my.project:my-dependency-1:1.0.0
| +---org.apache.commons:commons-lang3:3.4
+---my.project:my-dependency-2:1.0.0
+---org.apache.commons:commons-lang3:3.3.2
我将spring gradle dependency management插件更新为0.5.2.RELEASE,解决了我的问题。我必须删除Maven存储库声明,并删除对
my.project:my project:1.0.0-SNAPSHOT的依赖,才能在本地构建它。当我运行dependencies
时,输出不包含commons-lang3
(或任何其他commons-langjar)。您希望哪个依赖项依赖于Commons Lang?@JohanStuyts查看我的编辑,查看my project