在Maven中有一个非常有用的功能,您可以<dependencyManagement>在父POM 的部分中定义依赖项,并在不指定版本或范围或其他任何内容的情况下从子模块引用该依赖项.
Gradle有哪些替代方案?
使用Gradle,我希望能够禁用一组依赖项的传递性,同时仍允许其他依赖项.像这样的东西:
// transitivity enabled
compile(
[group: 'log4j', name: 'log4j', version: '1.2.16'],
[group: 'commons-beanutils', name: 'commons-beanutils', version: '1.7.0']
)
// transitivity disabled
compile(
[group: 'commons-collections', name: 'commons-collections', version: '3.2.1'],
[group: 'commons-lang', name: 'commons-lang', version: '2.6'],
) {
transitive = false
}
Run Code Online (Sandbox Code Playgroud)
Gradle不接受此语法.如果我这样做,我可以让它工作:
compile(group: 'commons-collections', name: 'commons-collections', version: '3.2.1') { transitive = false }
compile(group: 'commons-lang', name: 'commons-lang', version: '2.6']) { transitive = false }
Run Code Online (Sandbox Code Playgroud)
但是,当我宁愿将它们组合在一起时,这需要我在每个依赖项上指定属性.
有人建议使用可以解决此问题的语法吗?