首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码弧奇异依赖关系

代码弧奇异依赖关系
EN

Stack Overflow用户
提问于 2017-12-18 13:11:43
回答 1查看 151关注 0票数 0

我们使用的是代码弧插件和gradle,我在依赖项中看到了奇怪的事情:

代码语言:javascript
复制
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版本?

谢谢你帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-18 13:58:10

正如您在输出中所看到的,罪魁祸首是GMetrics。

CodeNarc 0.25.2依赖于GMetrics 0.7,而后者又依赖于Groovy2.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,您的问题就会消失。

或者,您也可以使用force true声明Groovy版本在您自己的依赖项中使用,这将强制您定义的版本。

或者,您可以配置依赖项解析以影响所选版本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47869255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档