32

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

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

4

6 回答 6

54

运行 maven 时尝试使用-U( aka ) --update-snapshots

并确保依赖定义正确

于 2013-03-28T02:56:51.660 回答
18

您也可以在命令行上使用此命令:

mvn dependency:purge-local-repository clean install
于 2017-06-14T08:38:10.457 回答
11

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

确保:

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

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

于 2013-03-28T03:00:11.750 回答
6

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

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

于 2015-04-02T13:00:10.803 回答
1

单击设置并搜索“存储库”,然后选择本地存储库并单击“更新”。就这样。这个动作满足了我的需要。

于 2018-03-08T14:23:05.787 回答
0

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

gvim <local-git-repository>/commons-codec/resolver-status.properties
于 2017-10-13T00:42:40.650 回答