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

时间:2012-01-13 22:16:02

标签: java maven m2eclipse sts-springsourcetoolsuite m2e

我开始配置我的开发环境,我正在使用Spring Tool Suite 2.8.1和m2E 1.01。

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

我想知道的是为什么我的IDE显示的Java Build Error为“库 library / path / somejar.jar 所需的存档无法读取或不是有效的zip文件”当我能看到我的.m2存储库中的jar?

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

我附上了截图来说明。

Markers

23 个答案:

答案 0 :(得分:84)

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

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

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

答案 1 :(得分:16)

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

答案 2 :(得分:10)

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

答案 3 :(得分:5)

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

答案 4 :(得分:3)

这对我有用。

  1. 关闭Eclipse
  2. 删除./m2/存储库
  3. 打开Eclipse,它将自动下载所有jars
  4. 如果仍然存在问题,请右键单击项目> Maven>更新项目...>选中“强制更新快照/发布”

答案 5 :(得分:2)

对于Google员工:

在我的情况下,我偶然手动将Java类添加到构建路径,同时在Eclipse周围进行操作。通过查看“配置构建路径...”>库我删除了罪魁祸首类,现在只有

  • JRE系统库
  • Maven Dependencies

并没有任何抱怨。

答案 6 :(得分:1)

在我的情况下,我尝试了所有建议的提示,但错误仍然存​​在。我解决了使用更新版本的更改并在pom.xml中编写它。在这之后一切都好了。

答案 7 :(得分:1)

我删除了本地maven存储库。 然后右键单击该项目 - > Maven - >更新项目...... 选择所有相关项目,然后单击“确定”。

答案 8 :(得分:1)

以下步骤解决了我的问题。

  1. 转到./m2/repository文件夹。

  2. 转到相应的存档错误文件夹。

  3. 验证所有zip文件是否存在。

  4. 删除错误名称文件夹。

  5. 现在进入Eclipse项目-右键单击-Maven->更新项目。

以上技巧对我有效。

答案 9 :(得分:0)

我面对同样的问题。我删除了本地存储库并重新启动了ID。它运作良好。

答案 10 :(得分:0)

这发生在Eclipse拧紧时。要解决此问题,请删除以下位置的所有文件:

workspace/.metadata/.plugins/org.eclipse.jdt.core

答案 11 :(得分:0)

在“问题”部分中阅读问题,确定无法读取的依赖项,然后转到Maven存储库.m2 \ repository-> 1)检查依赖项并将其从文件夹中删除 2)转到STS / Eclipse->单击Maven->更新项目->选择快照/发行版的强制更新,然后单击确定。

或 从.m2 /存储库中删除依赖项并重建Maven->更新Maven项目

答案 12 :(得分:0)

对于VSCode,请执行以下步骤:

  1. 导航到包含损坏的jar的相应文件夹
  2. 只删除罐子
  3. mvn clean
  4. mvn编译

对我有用。

答案 13 :(得分:0)

或者,以下命令也对我有用:

mvn -s settings.xml eclipse:clean
mvn -s settings.xml eclipse:eclipse

答案 14 :(得分:0)

我的项目也面临同样的问题。

我的项目找不到该存档:-

C:\Users\rakeshnarang\.m2\repository\org\hibernate\hibernate-core\5.3.7.Final

我去了这个目录并删除了这个文件夹。

回到月食并按ALT + F5更新项目。

再次下载了jar文件,问题已解决。

您应该尝试这个。

答案 15 :(得分:0)

当我看到一条错误消息:“无法读取所需库的存档”时,我通过从项目的构建路径中删除有问题的JARS,然后使用“添加外部Jar”将其添加回来解决了该问题。再次(导航到它们所在的文件夹)。使用“添加罐子”按钮将不起作用,并且错误仍然存​​在。但是使用“添加外部罐子”是可行的。

答案 16 :(得分:0)

上述解决方案都没有解决我的问题。我通过删除{projectworkspace} / .metadata文件夹和{location} /.m2文件夹中的所有文件来解决它,让eclipse再次下载每一件事。希望这可以帮助别人,欢呼!

答案 17 :(得分:0)

在Indigo SR2上遇到此问题。我从类路径(构建路径)中删除了一个多余的jar后弹出。重启Eclipse没有帮助。将jar添加回构建路径...错误消失了。再次取出罐子,这次我没有再次投诉了。

答案 18 :(得分:0)

好吧,我在Mac上遇到了与STS相同的问题并通过删除存储库文件夹中的所有文件来解决它,并从STS IDE中单击该项目然后单击Maven - >更新项目。给它几分钟的时间来下载所有依赖项,问题就解决了。

答案 19 :(得分:0)

我遇到了这个问题。我有"归档所需的库spring-boot-devtools无法读取或不是有效的ZIP文件"解决方案是这样的: - 1-确定有问题的依赖项名称(可能是spring-boot-devtools)。 2-日食。 3-在.m2文件中搜索这些依赖项(按名称)。 4-删除这些文件夹。 5-重新打开eclipse,让maven再次重建你的依赖。

答案 20 :(得分:0)

从构建路径中删除maven依赖项

答案 21 :(得分:0)

这可能是因为您已将spring-licence.txt文件添加到您的Web应用程序库中。

我有类似的问题并在删除该文本文件后解决了。在库中,它只需要jar文件。

答案 22 :(得分:-1)

Delete your C:\Users\PC\.m2** folder
and update maven project