这就是它正在做的事情:
org.apache.santuario:xmlsec:1.5.7 -> 2.0.2
对于这个子项目,我想强制1.5.7。顺便说一句,这东西埋得很深。必须有一个比剥洋葱更好的方法来获得排除的一个依赖。我的意思是如果我有一个依赖关系X为什么我不能以编程方式向下执行排除?这是Gradle,对吧?
这几乎奏效了:
configurations {
compile.resolutionStrategy {
force 'org.apache.santuario:xmlsec:1.5.7'
}
...
}
以上在树中正确显示,但2.0.2仍然在战争中结束。
无论如何,这是有效的,并且不需要手工挖掘它,我会采取。
答案 0 :(得分:0)
您可以考虑使用force
。
substitute
dependencies {
compile 'org.apache.santuario:xmlsec:2.0.1'
}
configurations.all {
resolutionStrategy {
// add dependency substitution rules
dependencySubstitution {
substitute module('org.apache.santuario:xmlsec') with module('org.apache.santuario:xmlsec:1.5.7')
}
}
}
然后我得到一个输出:
$ ./gradlew -q dependencies --configuration compile
------------------------------------------------------------
Root project
------------------------------------------------------------
compile - Dependencies for source set 'main'.
\--- org.apache.santuario:xmlsec:2.0.1 -> 1.5.7
\--- commons-logging:commons-logging:1.1.1