是否有可能在不离开IntelliJ的情况下检索有关pom.xml中的依赖关系的快速文档?

时间:2015-10-29 07:31:32

标签: maven intellij-idea

我的pom.xml文件包含依赖项列表:

    <dependencies>
    <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
    </dependency>

我的任务是找出以下问题的答案:

  1. 它是最新版本的依赖项,还是更新版本已经存在?
  2. 两个依赖项之间是否存在冲突,这意味着它们使用具有不同版本的相同jar文件?
  3. 很高兴知道是否有可能在不离开IntelliJ IDEA 14.x的情况下检索有关依赖关系的快速文档?

2 个答案:

答案 0 :(得分:1)

对于第一个问题,请查看问题Maven check for updated dependencies in repository

对于第二个:由于maven在距离上解析了相同的依赖关系(相同的groupId,artifactId,分类器,版本),因此难以分辨。因此,如果在您自己的pom.xml中定义,那将永远获胜。如果与pom的距离低于其他pom,则传递依赖性会获胜。我认为mvn dependency:tree -Dverbose=true会打印出来:

...
[INFO] |        +- (commons-lang:commons-lang:jar:2.6:compile - version managed from 2.5; omitted for duplicate)
[INFO] |        +- (commons-collections:commons-collections:jar:3.0:compile - omitted for duplicate)
....

第三:你搜索什么信息?在maven面板中,如果右键单击模块或pom,则可以显示maven依赖项。在该视图中,您只需键入搜索(其某种依赖图)。请参阅JetBrains docs

答案 1 :(得分:1)

  1. 它是最新版本的依赖项,还是更新版本已经存在?

    请参阅display-dependency-updates Versions Maven Plugin目标(在答案中提及的答案 wemu 中也有链接,但codehaus.org终止了所有服务,那里的链接不再正常工作):

      

    扫描项目的依赖项,并生成具有更新版本的依赖项的报告。

  2. 两个依赖项之间是否存在冲突,这意味着它们使用不同版本的相同jar文件?

    使用Dependency Convergence ruleMaven Enforcer Plugin

      

    此规则要求依赖关系版本号收敛。如果一个项目有两个依赖项,A和B,两者都依赖于相同的工件C,如果A依赖于不同版本的C 然后而不是依赖于C的C版本,则该规则将失败构建由B。

    [由我纠正错字。]

  3. 很高兴知道是否有可能在不离开IntelliJ IDEA 14.x的情况下检索有关依赖关系的快速文档?

    请参阅Maven Dependency Sync

      

    首次获取库时,会自动获取源和javadoc。如果远程存储库中没有它们,您可以将它们安装在本地maven存储库中,然后在项目视图中右键单击库 - &gt;获取Source和Javadoc。