由于缓存的依赖项(java)

时间:2017-04-20 18:24:04

标签: java maven

我正在尝试将我的项目打包到jar中,每当我尝试这个时它都无法编译,因为我不再使用旧的缓存依赖项了。

  

无法解决项目at.htl的依赖关系:testmonitoring-client:jar:1.18.47:无法收集http://repo.maven.apache.org/maven2中的依赖关系[旧依赖关系]缓存在本地存储库中,解决方案将不会重新尝试,直到中心的更新间隔已经过去或强制更新 - > [帮助1]

2 个答案:

答案 0 :(得分:2)

如果您没有使用依赖项,那么您应该从pom中删除它们。如果依赖关系不在pom中,那么(大多数时候)Maven将不会尝试解决它们,并且构建不会失败。

如果你已经将它们从pom中移除但是maven仍然试图解决它们,那么它可能意味着某些东西正在传递它们。您可以使用mvn dependency:tree

进行检查

如果无论出于何种原因构建需要解决它们,那么最简单的方法是从本地存储库中删除“缓存失败”。最简单的方法是删除整个〜/ .m2 / repository目录(及其所有子目录及其内容),这可能是安全的,因为maven将从远程重建它。唯一的问题是,如果您在本地仓库中有/需要任何遥控器上不存在的工件。如果情况并非如此,那么你不会因此而失去任何东西,尽管它会使下一次构建需要更长的时间,因为它必须再次下载所有内容。

如果您无法删除整个本地仓库,那么您仍然可以追踪导致问题的特定工件。例如,如果您对工件groupId = com.some.comapny artifactId = someArtifact,version = 1.0.0有问题,那么您可以删除〜/ .m2 / repository / com / some / company / someArtifact / 1.0.0(及其所有内容)。

请注意,这假设Maven将能够解析配置的远程服务器的依赖关系。如果它们在您配置的遥控器中不可用,那么您可能必须解决这个问题(通过将它们添加到您的本地回购管理器,添加具有工件的公共存储库等)。

答案 1 :(得分:-2)

转到主目录并删除.m2(隐藏目录)文件夹并更新项目并运行它。