2016-04-08 4 views
1

私のプロジェクトでは、問題なく正常に動作しているspring-jdbc:4.1.4.RELEASEを持っています。今度は新しい変更のために私のプロジェクトにspring-security-taglibs:4.0.4.RELEASEを追加しようとしています。これはspring-security-taglibs:4.0.4.RELEASEspring-jdbc-4.2.5.RELEASEをダウンロードしようとしています。これは私のプロジェクトで重大な問題を引き起こします。私のために必要なものはspring-jdbcなので、私が明示した4.1.4.RELEASEです。どうすればこれを避けることができますか?何が起こっているの?Gradle - spring-security-taglibs:4.0.4.RELEASEは内部的にspring-jdbc-4.2.5.RELEASEをダウンロードしています

これは、あなたがあなたのbuild.gradleにこのような何かを持っていると思われるのGradle

+0

あなたの 'build.gradle'を追加してください –

答えて

1

から奇妙な動作です:

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'org.springframework:spring-jdbc:4.1.4.RELEASE' 
    compile 'org.springframework.security:spring-security-taglibs:4.0.4.RELEASE' 
} 

だから、これは次の出力に表示されている、あなたの依存関係の紛争を紹介タスク:

gradle dependencyInsight --dependency org.springframework:spring-jdbc 

:dependencyInsight 
org.springframework:spring-jdbc:4.2.5.RELEASE (conflict resolution) 
\--- org.springframework.security:spring-security-acl:4.0.4.RELEASE 
    \--- org.springframework.security:spring-security-taglibs:4.0.4.RELEASE 
      \--- compile 

org.springframework:spring-jdbc:4.1.4.RELEASE -> 4.2.5.RELEASE 
\--- compile 

上矢印( - >)のGradleデフォルトの解像度の戦略を使用し、4.2.5は、(最新)によって選択されたことを意味グラデル。あなたはGradleのドキュメントで読むことができます:

のGradleは、以下の紛争解決の戦略を提供しています:

最新:依存関係の最新バージョンが使用されています。これはGradleのデフォルト戦略であり、多くの場合、バージョンが後方互換性があるので、 という長さの適切な選択です。

失敗:バージョンが競合するとビルドに失敗します。この戦略では、ビルド スクリプトですべてのバージョンの競合を明示的に解決する必要があります。

Link.

私はあなたのためのオプションとして、以下を参照してください

  • は使用最新spring-jdbc(最高IMO)
  • が上dependes古い春のセキュリティタグライブラリを使用する古いspring-jdbc
  • あなたのスクリプト(最悪のIMO)内のバージョンの競合を解決し、あなたの指が交差しないようにしてください。あなたは少なくともいくつかの運が必要です:-)詳細 - here
+0

はい、私は今では古い春のセキュリティバージョンを使用しています –

関連する問題