2016-03-23 14 views
1

クラシファイア(クローバーなど)によって特定されたjarの特別なバージョンに依存しています。私は依存関係として簡単に指定できます。残念ながら、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'は次のように言います。*このメソッドは、依存関係が解決される前に変更するために使用できます。変更グループ、名前またはバージョン(またはそれらの3つすべて)*は、クラシファイアをオーバーライドするサポートがないことを暗示しているようです。 – RaGe

+0

また、この[document](https://github.com/gradle/gradle/blob/6277a4dc70fbeea83c111e75c95ba851d1e56ffc/design-docs/dependency-substitution.md#implementation)では、 'DependencyResolveDetails'は廃止され、代わりに' DependencySubstitution'を使うべきだと言います。これがどのようなgradleバージョンに影響するかはわかりません。 – RaGe

答えて

0

userTargetは、同様に文字列を受け取り、あなたが試すことができます:

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

あなたの提案をありがとう。残念ながら、それは動作しません。例外はありませんが、単に分類子を尊重するものではありません。 – Daniel

関連する問題