Maven下载有.lastUpdated作为扩展名

时间:2010-03-27 12:19:06

标签: eclipse maven-2

我有一个使用m2eclipse和颠覆性的Eclipse设置。我从svn导入了一个maven2项目。但是我得到的错误信息是缺少一大堆工件(例如:缺少工件org.springframework:spring-test:jar:3.0.1.RELEASE:test)。

如果我查看我的存储库,我会在那里看到jar文件,但是它们有一个额外的扩展名.lastUpdated。为什么maven追加.last更新到罐子里?更重要的是:我该如何解决这个问题?

我的POM中没有提到lastUpdated的类型。

7 个答案:

答案 0 :(得分:46)

这些文件向Maven表明它试图通过下载获取存档,但未成功。为了节省带宽,在文件中编码的特定时间段过去之前,它不会再次尝试。命令行开关-U强制maven在重试周期之前执行更新。如果您尝试在与网络断开连接时进行构建,则可能需要这样做。

删除文件的方法适用于大多数版本的maven,但由于文件是maven的内部纪念品,我不推荐这种方法。无法保证此信息不会被引用或保存在其他地方,并且此类操作可能会损坏系统。

答案 1 :(得分:12)

正如rperez所述,我用来删除所有.lastUpdated个文件。在Linux中,我创建了一个小脚本来保持简单

find -name \*.lastUpdated -exec rm -fv {} +

只需创建包含以前内容的文件,并将其放在本地Maven存储库中。通常它是~/.m2/repository

答案 2 :(得分:6)

我安装了Maven2并从命令行运行了mvn compile。这似乎已经解决了问题

答案 3 :(得分:2)

如果您遇到此问题并且您正在使用Nexus,则可能是您定义了路由规则,这是不正确的。我自己点击它并且它正在下载的文件被正确命名,它正在查看正确的URL-s,但它们都带有.lastUpdated扩展名和错误消息作为内容。

答案 4 :(得分:1)

您可能会遇到从存储库中检索的一些工件的问题。例如,spring框架有自己的存储库。当工件无法完全下载时,会附加此xtension。将spring框架存储库添加到您的pom或settings.xml,删除包含损坏的jar文件夹并重新开始

答案 5 :(得分:0)

打开终端,导航至Eclipse的项目目录并运行:

mvn install

如果mvn install不会更新您的依赖项,请使用强制更新的开关对其进行调用:

mvn install -U

与在删除“ .lastUpdated”时篡改maven文件相比,这是一种更为安全的方法。

答案 6 :(得分:0)

在.m2 / repository目录中使用此命令来重命名所有文件:

for file in `find . -iname *.lastUpdated`; do renamed=$(echo $file | rev | cut -c13- | rev); echo renaming: $file to $renamed; mv $file $renamed; done

这对于不再下载所有源代码很有用。

这不起作用... .jar丢失。 :(