我面临依赖排除Gradle 2.5上的麻烦 所以,我有3个项目
第一个是moduleB(build.gradle):
group 'com.test'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'idea'
sourceCompatibility = 1.8
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
compile project(':moduleA')
compile 'org.jsoup:jsoup:1.8.3'
}
jar {
manifest {
attributes 'Main-Class': 'com.test.Main'
}
doFirst {
from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }
}
}
moduleA项目:
group 'com.test'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile project(':moduleC')
}
和moduleC项目
group 'com.test'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
configurations.all {
transitive = false
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
compile project(':moduleB')
}
moduleC需要使用来自moduleB的一些类,但是moduleC不应该通过moduleB(传递依赖)包含moduleA,我尝试使用transitive = false但它对我不起作用。 如果我想从moduleC使用moduleB,如何排除moduleA?
我的格斗错误:
Circular dependency between the following tasks:
:moduleA:classes
\--- :moduleA:compileJava
+--- :moduleA:jar
| \--- :moduleA:classes (*)
+--- :moduleB:jar
| \--- :moduleB:classes
| \--- :moduleB:compileJava
| +--- :moduleA:jar (*)
| +--- :moduleB:jar (*)
| \--- :moduleC:jar
| \--- :moduleC:classes
| \--- :moduleC:compileJava
| +--- :moduleA:jar (*)
| +--- :moduleB:jar (*)
| \--- :moduleC:jar (*)
\--- :moduleC:jar (*)
(*) - details omitted (listed previously)
为什么这对我不起作用?这是Gradle或其他什么的错误?
compile(project(':moduleB')) {
transitive = false
}