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


75

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

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

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

所有错误均与commons-logging:1.1.1有关,我在父pom中排除了这些错误。这是通过spring-context-support:3.0.5获得的过渡性依赖。我从构建中排除了该库,现在错误与spring-context-support库有关。

我已经附上了一个截图来说明。

标记物


您需要执行installMaven的目标:查找m2e的上下文菜单。这将获取所有错过的依赖项。
dma_k 2012年

2
谢谢dma_k,我已经尝试过了,但是无济于事。该罐子在我的.m2存储库中
。.

如果有jar文件,请尝试刷新您的项目。通常这会有所帮助。
dma_k 2012年

好的,这有所帮助-现在还有其他错误-但这有所帮助。谢谢
totalcruise 2012年

Answers:


91

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

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

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


14
在将现有项目添加到新的Git存储库中之后,重新启动Eclipse就为我工作了。感谢+1
pjco

9
似乎是Helios的已知错误(不确定Juno是否存在)。bugs.eclipse.org/bugs/show_bug.cgi?id=375249。当jar有效时,只需删除项目(而不是内容)并将现有项目重新导入到工作空间中即可对其进行修复。
dfdumaresq

3
Eclipse重新启动对我不起作用,删除/导入确实对我
Alex

10
手动清理目录似乎对我有用。简单地rm -rf ~/.m2/repository/<path of dependency>(的Linux / MAC)是所有这似乎是必需的。
Paul Richter 2014年

17

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


在ubuntu上mvn -install说这不是有效的命令,我只是.m2\repository通过alt + f5删除了其中的所有文件并从IDE(STS)更新了maven项目,然后检查了“强制更新快照/发行版”,然后确定...解决了我的问题。谢谢:)
Vaibhav Miniyar '18

9

我使用Eclipse作为IDE,但遇到了同样的错误。我必须做Project-> Maven-> Update Project。选中以下所有复选框(“离线”尤其是“离线”)。一个“强制更新快照/发行版”,然后单击“确定”。再次为项目进行了清洁构建。


5

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


我认为它的ALT + F5
Bala '18

4

这对我有用。

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

2

对于Google员工:

就我而言,我在戳Eclipse时不小心将Java类手动添加到了构建路径。通过查看“配置构建路径...>库”,我删除了罪魁祸首类,现在只具有

  • JRE系统库
  • Maven依赖

而且没有什么可抱怨的。


我有一个与此类似的问题,其中将application.properties添加到源文件夹中导致它被添加为Eclipse Oxygen中的应用程序库。它产生了所需库的错误存档:无法读取项目中的'src / main / resources / application.properties'或它不是有效的ZIP,并且从构建路径中删除该依赖关系解决了该问题。
JE卡特二世

2

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

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

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

  3. 验证是否存在任何zip文件。

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

  5. 现在进入Eclipse Project-右键单击-Maven-> Update Project。

上面的技巧对我有用。


1

就我而言,我尝试了所有建议的技巧,但错误仍然存​​在。我解决了使用最新版本进行更改并将其写入pom.xml的问题。在此之后,一切正常。


1

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


1

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

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

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

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

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

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

您应该尝试一下。



0

我遇到了这个问题。我有“无法读取必需的库spring-boot-devtools的存档,或者不是有效的ZIP文件”,解决方案是这样的:-1-确定有问题的依赖项名称(可能是spring-boot- devtools)。2-日食。3-在您的.m2文件中搜索这些依赖项(按名称)。4-删除这些文件夹。5-重新打开eclipse,然后让Maven重新构建依赖关系。


0

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


0

我面临着同样的问题。我删除了本地存储库,然后重新启动了ID。运行良好。


0

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


0

上面的解决方案都没有解决我的问题。我已经解决了该问题,方法是删除{projectworkspace} /。metadata文件夹和{location} /。m2文件夹中的所有文件,然后让eclipse重新下载每件事。希望这可以帮助某人,加油!


0

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


0

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

我有类似的问题,并在删除该文本文件后解决了。在库中,它将仅期望jar文件。



0

如果是VSCode,请执行以下步骤:

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

那对我有用。


0

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

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


0

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.