簡體   English   中英

Codenarc奇怪的依賴關系

[英]Codenarc strange dependencies

我們正在使用codenarc插件和gradle,我看到了依賴項中的奇怪之處:

codenarc - The CodeNarc libraries to be used for this project.
\--- org.codenarc:CodeNarc:0.25.2
 +--- junit:junit:4.8.1 -> 4.12
 |    \--- org.hamcrest:hamcrest-core:1.3
 +--- org.codehaus.groovy:groovy-xml:2.1.8 -> 2.6.0-alpha-1
 |    \--- org.codehaus.groovy:groovy:2.6.0-alpha-1
 +--- org.codehaus.groovy:groovy:2.1.8 -> 2.6.0-alpha-1
 +--- org.codehaus.groovy:groovy-ant:2.1.8 -> 2.6.0-alpha-1
 |    +--- org.codehaus.groovy:groovy:2.6.0-alpha-1
 |    +--- org.codehaus.groovy:groovy-groovydoc:2.6.0-alpha-1 -> 2.4.9
 |    |    +--- org.codehaus.groovy:groovy-templates:2.4.9
 |    |    |    +--- org.codehaus.groovy:groovy:2.4.9 -> 2.6.0-alpha-1
 |    |    |    \--- org.codehaus.groovy:groovy-xml:2.4.9 -> 2.6.0-alpha-1 (*)
 |    |    \--- org.codehaus.groovy:groovy:2.4.9 -> 2.6.0-alpha-1
 |    +--- org.apache.ant:ant-junit:1.9.9
 |    \--- org.apache.ant:ant-antlr:1.9.9
 \--- org.gmetrics:GMetrics:0.7
      +--- org.codehaus.groovy:groovy:[2.1.0,) -> 2.6.0-alpha-1
      +--- org.codehaus.groovy:groovy-xml:[2.1.0,) -> 2.6.0-alpha-1 (*)
      \--- org.codehaus.groovy:groovy-ant:[2.1.0,) -> 2.6.0-alpha-1 (*)

codenark的版本是0.25.2,在pom中它取決於groovy 2.1.8,但是wtf-為什么它鏈接到2.6.0-alpha-1? 我如何告訴Codenark使用Groovy 2.1.8版本?

感謝幫助。

正如您在輸出中看到的,罪魁禍首是GMetrics。
CodeNarc 0.25.2取決於GMetrics 0.7,而后者又取決於Groovy 2.1.0或更高版本,后者解析為最新的可用版本2.6.0-alpha-1。
默認版本沖突解決策略是在發生沖突時使用最新版本,即2.6.0-alpha-1。

(以我的觀點)庫以動態范圍發布是錯誤的。
GMetrics顯然也將其視為錯誤,並在1.0中修復了此依賴關系,該依賴關系改為依賴特定的Groovy版本。
反過來,CodeNarc 1.0取決於GMetrics 1.0。

因此,如果可行,最簡單的方法就是依賴CodeNarc 1.0,您的問題將消失。

另外,您也可以聲明Groovy版本在您自己的依賴項中使用,使用force true強制將強制您定義的版本。

或者,您可以配置依賴性解析以影響所選的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM