【问题标题】:how to force maven to update local repo如何强制 maven 更新本地 repo
【发布时间】:2013-03-28 02:52:14
【问题描述】:

我在一个项目中编译了一个 jar 文件,以便在第二个项目中使用它。我可以在 .m2 文件夹中看到 jar 文件。但在第二个项目中,它抱怨找不到工件。 我想我必须强制 maven 更新索引/缓存的东西,但不知道到底是什么。任何提示,谢谢。

更新:感谢所有好的建议。 事实证明,第二个项目中的 maven 插件(IntelliJ)没有更新它的索引。我使用它编译好的命令行。

【问题讨论】:

  • 这个问题需要更多细节。您能否展示您的两个项目的 pom 的相关部分,解释您如何“编译 jar 文件”,如何将其放入 .m2 目录?你用mvn install了吗?

标签: maven intellij-idea


【解决方案1】:

在运行 maven 时尝试使用 -Uaka --update-snapshots

并确保依赖定义正确

【讨论】:

  • -U 仅用于从远程仓库更新快照。鉴于 OP 正在谈论自己编译 JAR,并且没有提到快照,我怀疑这个答案是否合理。
  • 嗯,好的,有一半的答案是不合理的。另一半与你的一半相同:) 更有可能是这种情况
【解决方案2】:

你也可以在命令行中使用这个命令:

mvn dependency:purge-local-repository clean install
【解决方案3】:

如果您要安装到本地存储库中,则不需要特殊的索引/缓存更新。

确保:

  1. 您已在本地存储库中正确安装了第一个工件。简单地将文件复制到.m2 可能无法按预期工作。确保通过mvn install安装它

  2. 第二个项目中的依赖项设置正确。检查groupId/artifactId/version 中的任何错字,或不匹配的工件type/classifier

【讨论】:

    【解决方案4】:

    尽管这是一个老问题,但我已经多次偶然发现这个问题,直到现在还没有弄清楚如何解决它。 更新 maven 索引 是 IntelliJ 创造的一个术语,如果在您编译第一个项目后它仍然无法正常工作,则很可能您使用了 2 个不同的 maven 安装。

    CTRL+Shift+A 打开“操作”菜单。输入 Maven 并转到 Maven 设置。检查 主目录 以使用与通过命令行使用相同的 maven

    【讨论】:

    • 点击Reimport All Maven Projects强制IntelliJ下载所有依赖。
    【解决方案5】:

    单击设置并搜索“存储库”,然后选择本地存储库并单击“更新”。就这样。此操作符合我的需要。

    【讨论】:

      【解决方案6】:

      如果您在对站点进行身份验证时遇到困难,并且 Maven 正在缓存结果,那么只需从元数据存储中删除有关该站点的元数据将迫使 Maven 重新访问该站点。

      gvim <local-git-repository>/commons-codec/resolver-status.properties
      

      【讨论】:

        猜你喜欢
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        • 2011-09-04
        • 2013-12-12
        • 1970-01-01
        • 2011-11-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多