我在一个项目中编译了一个 jar 文件,以便在第二个项目中使用它。我可以在 .m2 文件夹中看到 jar 文件。但是在第二个项目中,它抱怨找不到工件。我想我必须强制 maven 更新索引/缓存一些东西,但不知道到底是什么。任何提示,谢谢。
更新:感谢所有好的建议。事实证明,第二个项目中的 maven 插件(IntelliJ)没有更新它的索引。我使用它编译好的命令行。
我在一个项目中编译了一个 jar 文件,以便在第二个项目中使用它。我可以在 .m2 文件夹中看到 jar 文件。但是在第二个项目中,它抱怨找不到工件。我想我必须强制 maven 更新索引/缓存一些东西,但不知道到底是什么。任何提示,谢谢。
更新:感谢所有好的建议。事实证明,第二个项目中的 maven 插件(IntelliJ)没有更新它的索引。我使用它编译好的命令行。
运行 maven 时尝试使用-U
( aka ) --update-snapshots
并确保依赖定义正确
您也可以在命令行上使用此命令:
mvn dependency:purge-local-repository clean install
如果您要安装到本地存储库中,则不需要特殊的索引/缓存更新。
确保:
您已在本地存储库中正确安装了第一个工件。简单地将文件复制到.m2
可能无法按预期工作。确保通过以下方式安装它mvn install
第二个项目中的依赖项设置正确。检查任何错别字groupId/artifactId/version
或不匹配的工件type/classifier
。
尽管这是一个老问题,但我多次偶然发现这个问题,直到现在才想出如何解决它。更新 maven 索引是 IntelliJ 创造的一个术语,如果在您编译第一个项目后它仍然无法正常工作,则很可能您正在使用 2 个不同的 maven 安装。
按CTRL+ Shift+A打开“操作”菜单。键入Maven
并转到Maven 设置。检查主目录以使用与通过命令行使用相同的 maven
单击设置并搜索“存储库”,然后选择本地存储库并单击“更新”。就这样。这个动作满足了我的需要。
如果您在对站点进行身份验证时遇到困难,并且 Maven 正在缓存结果,那么只需从元数据存储中删除有关该站点的元数据将迫使 Maven 重新访问该站点。
gvim <local-git-repository>/commons-codec/resolver-status.properties