【发布时间】:2016-07-10 19:06:23
【问题描述】:
我依赖于由分类器(例如三叶草)识别的特殊版本的 jar。我可以轻松地将其指定为依赖项。不幸的是,它在 pom 中指定的所有依赖项都没有分类器。
compile(group: 'ch.mypackage', name: 'projectWithTransitiveDeps', version: "1.0.0-SNAPSHOT", classifier: 'clover')
我也想更改传递依赖项以使用分类器,但对象上有 setter:
configurations {
compile.resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'ch.mypackage') {
details.useTarget group: details.requested.group, name: details.requested.name, version: details.requested.version, classifier: 'clover'
}
}
}
}
由于分类器是未知属性,上述代码将失败并出现异常。
还有其他方法可以实现吗?
【问题讨论】:
-
Documentation for
userTarget说 此方法可用于在解析之前更改依赖关系,例如更改组、名称或版本(或所有三个)。 这似乎暗示不支持覆盖分类器。 -
此外,document 表示
DependencyResolveDetails已弃用,您应该改用DependencySubstitution。不确定这会影响哪个 gradle 版本。
标签: java gradle dependency-management