2016-03-23 3 views
1

У меня есть зависимость от специальной версии банки, идентифицированной классификатором (например, клевер). Я могу легко указать его как зависимость. К сожалению, все его зависимости, указанные в 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' 
      } 
     } 
    } 
} 

Приведенный выше код потерпит неудачу с исключением, потому что классификатор является неизвестное свойство ,

Есть ли другой способ достичь этого?

+0

[Документация] (https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/DependencyResolveDetails. html # useTarget (java.lang.Object)) для 'userTarget' говорит * Этот метод может использоваться для изменения зависимости до его разрешения, например изменить группу, имя или версию (или все три из них). *, что, по-видимому, подразумевает отсутствие поддержки переопределения классификатора. – RaGe

+0

Кроме того, этот [документ] (https://github.com/gradle/gradle/blob/6277a4dc70fbeea83c111e75c95ba851d1e56ffc/design-docs/dependency-substitution.md#implementation) говорит, что 'DependencyResolveDetails' устарел, и вместо этого вы должны использовать' DependencySubstitution'. Не знаете, что такое версия градиента. – RaGe

ответ

0

Видимо userTarget принимает строку, а также, вы можете попробовать:

details.useTarget "$details.requested.group:$details.requested.name:$details.requested.version:clover" 
+0

Спасибо за ваше предложение. К сожалению, это не сработает. Не исключение, но он просто не уважает классификатор. – Daniel