我在一个项目中编译了一个jar文件,因此可以在第二个项目中使用它。我可以在.m2文件夹中看到jar文件。但在第二个项目中,它抱怨找不到工件。 我想我必须强制maven更新索引/缓存一些但不知道到底是什么。任何提示,谢谢。
更新:感谢所有好建议。 事实证明,第二个项目中的maven插件(IntelliJ)不会更新其索引。我使用它编译好的命令行。
答案 0 :(得分:45)
在运行maven时尝试使用-U
( aka --update-snapshots
)
确保依赖关系定义正确
答案 1 :(得分:8)
如果要安装到本地存储库,则不需要特殊的索引/缓存更新。
确保:
您已在本地存储库中正确安装了第一个工件。只需将文件复制到.m2
可能无法正常工作。请务必按mvn install
正确设置了第二个项目中的依赖项。检查groupId/artifactId/version
中的任何拼写错误,或无法匹配的工件type/classifier
。
答案 2 :(得分:5)
即使这是一个老问题,我多次偶然发现这个问题,直到现在都没想出如何解决它。 更新maven索引是IntelliJ创造的一个术语,如果在编译完第一个项目后它仍然不起作用,那么你可能正在使用2个不同的maven安装。
按 CTRL + Shift + A 打开“操作”菜单。输入Maven
并转到 Maven设置。检查主目录以使用与通过命令行使用相同的maven
答案 3 :(得分:4)
您也可以在命令行中使用此命令:
mvn dependency:purge-local-repository clean install
答案 4 :(得分:2)
点击设置并搜索"存储库",然后选择本地存储并点击"更新"。这就是全部。这个动作符合我的需要。
答案 5 :(得分:0)
如果您正在努力验证网站,并且Maven正在缓存结果,只需从元数据存储中删除有关该网站的元数据将迫使Maven重新访问该网站。
gvim <local-git-repository>/commons-codec/resolver-status.properties