У меня есть зависимость от специальной версии банки, идентифицированной классификатором (например, клевер). Я могу легко указать его как зависимость. К сожалению, все его зависимости, указанные в pom, не имеют классификатора.Классификатор изменения косички во время разрешения зависимостей
compile(group: 'ch.mypackage', name: 'projectWithTransitiveDeps', version: "1.0.0-SNAPSHOT", classifier: 'clover')
Я хотел бы изменить переходные зависимости использовать классификатор, а также, но есть сеттер на объекте:
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'
}
}
}
}
Приведенный выше код потерпит неудачу с исключением, потому что классификатор является неизвестное свойство ,
Есть ли другой способ достичь этого?
[Документация] (https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/DependencyResolveDetails. html # useTarget (java.lang.Object)) для 'userTarget' говорит * Этот метод может использоваться для изменения зависимости до его разрешения, например изменить группу, имя или версию (или все три из них). *, что, по-видимому, подразумевает отсутствие поддержки переопределения классификатора. – RaGe
Кроме того, этот [документ] (https://github.com/gradle/gradle/blob/6277a4dc70fbeea83c111e75c95ba851d1e56ffc/design-docs/dependency-substitution.md#implementation) говорит, что 'DependencyResolveDetails' устарел, и вместо этого вы должны использовать' DependencySubstitution'. Не знаете, что такое версия градиента. – RaGe