2016-04-08 68 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

這是gradle這個怪異的行爲

+0

添加您的'build.gradle' –

回答

1

看來,你有你的build.gradle是這樣的:

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

是的,我現在使用的是較老的spring-security版本 –

相關問題