【问题标题】:IntelliJ IDEA: How to synchronize project libraries with dependencies in pom.xml?IntelliJ IDEA:如何将项目库与 pom.xml 中的依赖项同步?
【发布时间】:2013-10-18 07:58:22
【问题描述】:

当我在项目的 pom.xml 之一(包含多个模块)中更改依赖项版本时,我会在项目结构的库部分中看到新版本和旧版本。

例如,最近我将 Drools 从 5.4 版本更改为 5.5。当我进入库部分时,我看到了这两个库,所以我手动删除了 5.4。

如何告诉 IDEA 删除 pom.xml 文件中未引用的库?

谢谢

【问题讨论】:

    标签: maven intellij-idea pom.xml


    【解决方案1】:

    嗯,这不是同步项目库的问题。

    同步设置可以通过Settings > Maven > Importing > Import maven project automatically进行设置

    但我认为这是另一个问题。它是由使用不同 Drools 版本的其他依赖引起的。您必须明确地从该依赖项中排除旧的 Drools 版本。

    如何找到这个导致依赖的问题?

    打开你的依赖树。可以通过 right click 在您的 maven 模块上完成,然后单击 Show dependencies 或按 Ctrl + Alt + Shift + U。

    会有一些红线导致同一 maven 工件的不同版本。只需单击它,Idea 就会引导您到哪里发生不一致。然后只需右键单击版本错误的 maven 工件,然后单击 Exlude 或 Shift + 删除。

    检查您的pom.xml。你应该找到这样的行:

    <exclusions>
       <exclusion>
          <artifactId>drools</artifactId>
          <groupId>drools</groupId>
          <version>5.4</version>
        </exclusion>
    </exclusions>
    

    【讨论】:

    • 我看不到“显示依赖项”选项,是否需要启用“Maven 集成”以外的插件? v12.1.6
    • 不,不需要插件。在“Maven 项目”子窗口的右侧面板上右键单击它。
    【解决方案2】:

    非常感谢你,米兰。

    我的问题似乎是 IntelliJ 错误(或功能!),但您的回答非常有帮助,因此我会将其标记为已接受。 IntelliJ 似乎没有更新孙子的依赖版本。

    我会解释会发生什么。

    我有一个父 POM (P) 和两个子 POM(C1 和 C2)。

    父 P 定义了一些属性,包括:

    <drools.version>5.4.0.Final</drools.version>
    

    子 C1 依赖于 Drools 版本,使用:

    <dependency>
      <groupId>org.drools</groupId>
      <artifactId>drools-core</artifactId>
      <version>${drools.version}</version>
    </dependency>
    

    C2 依赖于 C1,因此它间接依赖于 Drools 版本。

    如果我将父 POM 中的版本更改为 5.5.0.Final 并导入(该 POM 的)更改,则“项目结构”窗口的“库”部分包括两个版本:5.4.0.Final 和 5.5.0.Final .

    原因是C2仍然认为它依赖于旧版本。 C1 的依赖树显示了 Drools 的正确版本 5.5.0.Final。但是,C2 的依赖树显示了对 C1 的依赖(右),而后者又依赖于旧的 5.4.0.Final 版本(错误)。

    为了解决这个问题,我重新导入了 C1 的 POM(或者我猜是所有的 POM)。然后 5.4.0.Final 从库中消失了,C2 的依赖树反映了正确的 Drools 版本。

    【讨论】:

      猜你喜欢
      • 2015-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多