首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Maven中跟踪托管依赖项版本

在Maven中跟踪托管依赖项版本
EN

Stack Overflow用户
提问于 2013-01-14 21:10:25
回答 2查看 8.3K关注 0票数 8

假设我有一个复杂的项目,有很多依赖项。依赖项的版本由许多导入作用域poms管理。我的项目依赖于工件group:artifact,它依赖于工件group:transitive-dependency。当我运行dependency:tree时,我看到如下所示:

代码语言:javascript
复制
+- group:artifact:jar:1.3
   +- group:transitive-dependency:jar:1.1 (version managed from 1.3)

问题是group:artifact:1.3需要group:transitive-dependency 1.3或更高版本。当然,其中一个导入的pom强制使用了错误的版本。但是,除了搜索所有这些内容之外,是否有其他方法可以知道哪一个是?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-18 13:25:34

您应该尝试maven-enforcer-plugin并将其配置为执行DependencyConvergence,例如

代码语言:javascript
复制
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.2</version>
    <executions>
      <execution>
        <id>enforce</id>
        <configuration>
          <rules>
            <DependencyConvergence/>
          </rules>
        </configuration>
        <goals>
          <goal>enforce</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

这将向您显示哪些顶级依赖项在其依赖关系树中具有其他依赖项的不同版本。然后,您可以使用排除来抑制不想要的依赖变量。

票数 6
EN

Stack Overflow用户

发布于 2014-02-04 17:39:10

当两个或更多的父Poms与相同的工件冲突时,就会发生这种情况。

例如:

代码语言:javascript
复制
[INFO] |  \- com.rbs.gbm.risk:framework-core:jar:1.6.6:compile
[INFO] |     +- com.rbos.gbm.risk:log4jextensions:jar:2.3:compile (version managed from 2.2)
[INFO] |     +- oro:oro:jar:2.0.8:compile

在我的例子中,框架核心提到了log4jextentsions 2.2。我的超级pom显示的是log4jextentsions 2.3。不知何故,框架核心说服了maven使用log4jextentsions 2.2。

稍后,当我将framework-core pom更新为使用2.3时:

代码语言:javascript
复制
[INFO] |  \- com.rbs.gbm.risk:framework-core:jar:1.6.6:compile
[INFO] |     +- com.rbos.gbm.risk:log4jextensions:jar:2.3:compile
[INFO] |     +- oro:oro:jar:2.0.8:compile
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14319018

复制
相关文章

相似问题

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