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

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

据我所知,由于这是一个 Maven 项目(我的第一个项目) ,我的 Maven POM 决定了(与 m2E 智能一起)我的项目构建配置和依赖关系。

我想知道的是为什么我的 IDE 正在显示 Java 构建问题,读取“归档所需的库 Library/path/somjar.jar不能被读取或不是一个有效的压缩文件”时,我可以看到我的罐。M2仓库?

所有这些错误都与 commons-log 有关: 1.1.1,我在父 pom 中排除了这个错误。这是通过 Spring-context-support: 3.0.5实现的及物依赖。我从我的构建中排除了这个库,现在错误与 spring-context-support 库有关。

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

Markers

166655 次浏览

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

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

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

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

在我的案例中,我尝试了所有建议的提示,但错误仍然存在。我用一个更新的版本解决了更改问题,并在 pom.xml 中编写了该版本。这之后一切都好了。

我使用 Eclipse 作为 IDE,并且得到了非常相同的错误。我必须做项目-> Maven-> 更新项目。选择下面的所有复选框,除了“脱机”。一个“强制更新快照/发布”,然后单击 OK。再次为项目进行清洁生成。

对于谷歌员工:

在我的例子中,我在浏览 Eclipse 时意外地发现了 手动将 Java 类添加到构建路径中。通过查看“配置生成路径... > 库”,我删除了罪魁祸首类,现在只有

  • JRE 系统库
  • Maven 依赖

没人抱怨。

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

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

我删除了本地专家库。 然后右键单击项目-> Maven-> Update Project..。 选择所有相关的项目并单击 OK。

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

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

我面对过这个问题。我有“所需库的存档—— spring-boot-devtools 无法读取或不是有效的 ZIP 文件”,解决方案是这样的:- 1-确定有问题的依赖项名称(可能是 spring-boot-devtools)。 2-close eclipse. 3-在.m2文件中搜索这些依赖项(按名称)。 4-删除这些文件夹。 5-重新打开 eclipse,让 maven 再次重新构建您的依赖关系。

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

我面临同样的问题。我删除了本地存储库并重新启动了 ID。它工作得很好。

在靛蓝 SR2上出了点问题。在我从类路径(构建路径)中删除了一个多余的 jar 之后,它就出现了。重启 Eclipse 没有帮助。将 jar 添加回构建路径... 错误消失了。再一次移开罐子,这次我免于另一个抱怨。

以上的解决方案都没有帮助我解决问题。我已经通过删除{ projectworkspace }/中的所有文件解决了这个问题。{ location }/中的元数据文件夹 AND。M2文件夹,并让 Eclipse 下载每一件事情再次。希望这对谁有帮助,干杯!

这招对我很管用。

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

当我得到一个错误说“所需库的归档文件无法读取”,我解决了这个问题,从项目的构建路径中删除了有问题的 JARS,然后使用“添加外部 JARS”再次将它们添加回来(导航到它们所在的相同文件夹)。使用“ AddJars”按钮不会起作用,错误仍然存在。但是,使用“添加外部罐子”工作。

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

  1. 转到./m2/存储库文件夹。

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

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

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

  5. 现在转到 Eclipse Project-右击-Maven-> Update Project。

上面这招对我管用。

我的项目也遇到了同样的问题。

我的项目无法找到这个存档:-

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

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

回到 eclipse,点击 ALT + F5来更新项目。

Jar 文件被再次下载,问题得到了解决。

你应该试试这个。

另外,下面的命令也适合我:

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

如果是 VSCode,请遵循以下步骤:

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

这招对我管用。

阅读问题部分中的问题,确定哪个依赖项不能阅读,然后转到 maven 存储库 1)检查依赖关系并从文件夹中删除它 2)转到 STS/Eclipse-> 点击 maven-> update project-> 选择快照/发布的强制更新并点击 ok。

或者 从.m2/仓库中删除依赖项并重新构建 maven —— > 更新 maven 项目

如果 Eclipse 搞砸了,就会出现这种情况。要修复它,请删除以下内容中的所有文件:

workspace/.metadata/.plugins/org.eclipse.jdt.core
Delete your C:\Users\PC\.m2** folder
and update maven project

在我的示例中,我只需删除 proguard.cfg 中的以下2行:

-keep class android.support.v4.** { * ; }
-dontwarn android.support.v4.**

是的,我知道这个问题指的是 Spring 工具套件,但是:

  1. Spring 工具套件基于 Eclipse (我目前用于 ADT 的 IDE)。
  2. ProGuard 是一个 Java 模糊处理程序,可以用于任何项目,而不仅仅是 Android
  3. 我尝试了帖子里所有建议的答案和提示,但没有一个对我有用,直到我删除了所说的参考文献。

我希望这能帮到别人。