是否有一种方法可以指定我希望Gradle的冲突解决方案在冲突上失败,但只有当我没有指定一些强制模块时?
假设groupe:module与groupe:module1有一个传递依赖关系
example1:
dependencies {
compile 'group:module:version'
compile ('groupe:module1:version1') {
force = true
}
}在这种情况下,如果依赖项之间存在冲突,我不希望失败。(因为我认为,当我强迫module1去version1时,我知道自己在做什么。我知道其他更高的依赖项将从version1获取,即使它们与默认的version冲突)
example2:
dependencies {
compile 'group:module:version'
}在这种情况下,如果第二级依赖项之间存在一些冲突,我希望得到通知(因为在我的依赖关系树中不应该发生这种情况)。
我试过这样的方法:
configurations.all {
resolutionStrategy {
if ( forcedModules.isEmpty() ){
failOnVersionConflict()
}
}
}但是(我担心)我没有工作。
发布于 2014-06-06 01:24:36
只要使用resolutionStrategy.force强制使用模块版本,就会发现这种行为是现成的。如果必须强制声明依赖项,则可能必须迭代所有配置的ExternalDependency,并检查其中是否有force设置为true。
https://stackoverflow.com/questions/24064300
复制相似问题