编译器错误"无法读取所需库的存档" - Spring Tool Suite

tot*_*ise 71 java m2eclipse maven sts-springsourcetoolsuite m2e

我开始配置我的开发环境,我使用的是Spring Tool Suite 2.8.1和m2E 1.01.

据我所知,由于这是一个Maven项目(我的第一个),我的Maven POM正在指示(以及m2E smarts)我的项目构建配置和依赖项.

我想知道的是,为什么我的IDE显示Java Build Problems,当我在.m2中看到jar时,显示"库库/路径/ somejar.jar所需的存档无法读取或不是有效的zip文件"库?

所有错误都与commons-logging:1.1.1有关,我将其排除在父p-pom之外.这是通过spring-context-support支持的转换依赖:3.0.5.我从我的构建中排除了该库,现在错误与spring-context-support库有关.

我附上了截图来说明.

标记

Sam*_*CHI 87

实际上IDE经常缓存本地存储库(Eclipse做了类似的事情,我必须重新启动Eclipse).

您可能遇到的一个丑陋的maven行为是,如果您在实际安装之前声明了依赖关系,maven将创建缺少的依赖项的空版本(具有元数据但没有jar的文件夹),您将不得不手动清理.m2存储库.

第三,安装的存档(jar ...)可能会损坏,因此请尝试使用任何存档工具(7zip ...)打开它来测试它,如果存档已损坏则删除整个文件夹.

  • 在将现有项目添加到新的Git仓库后,简单地重新启动Eclipse为我工作.谢谢+1 (14认同)
  • 手动清理目录似乎对我有用.只需`rm -rf~/.m2/repository/<依赖路径>`(linux/mac)就好了. (10认同)
  • 似乎是Helios的一个已知错误(不确定它是否与Juno一起存在).https://bugs.eclipse.org/bugs/show_bug.cgi?id=375249.只要删除项目(而不是内容)并将现有项目导回工作区,就可以在jar有效时修复它. (9认同)
  • Eclipse重新启动对我不起作用,删除/导入确实有效 (3认同)

小智 16

在我的情况下,我不得不手动删除文件.m2\repository夹中的所有文件,然后打开命令提示符并mvn -install在我的项目目录中运行命令.


Gop*_*rwa 10

我使用Eclipse作为IDE,我得到了同样的错误.我不得不做Project-> Maven-> Update Project.选择下面的所有复选框,除了"离线"esp.一个"强制更新快照/发布"并单击"确定".是否再次为项目清理构建了.


Kau*_*nia 6

这对我有用。

  1. 关闭日食
  2. 删除./m2/存储库
  3. 打开Eclipse,它会自动下载所有jar包
  4. 如果问题仍然存在,则右键单击项目 > Maven > 更新项目... > 选中“强制更新快照/版本”


kol*_*bok 5

从Eclipse/STS中的本地.m​​2存储库和Ctrl+ F5(更新Maven项目)中删除损坏的文件.它将下载并安装这些文件.