Maven:运行Maven时打开zip文件时出错


69
[ERROR] error: error reading C:\Users\suresh\.m2\repository\org\jdom\jdom\1.1\jdom-1.1.jar; error in opening zip file
[ERROR] error: error reading C:\Users\suresh\.m2\repository\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar; error in opening zip file
[ERROR] error: error reading C:\Users\suresh\.m2\repository\org\apache\cxf\cxf-rt-bindings-http\2.2.1\cxf-rt-bindings-http-2.2.1.jar; error in opening zip file
[ERROR] error: error reading C:\Users\suresh\.m2\repository\org\codehaus\jra\jra\1.0-alpha-4\jra-1.0-alpha-4.jar; error in opening zip file
[ERROR] error: error reading C:\Users\suresh\.m2\repository\org\apache\cxf\cxf-api\2.2.1\cxf-api-2.2.1.jar; error in opening zip file
[ERROR] error: error reading C:\Users\suresh\.m2\repository\org\apache\cxf\cxf-common-utilities\2.2.1\cxf-common-utilities-2.2.1.jar; error in opening zip file
[INFO] 44 errors

运行时如何解决此错误mvn clean install

而且我看到,从开始servlet-api,在磁盘的本地存储库中未创建任何程序包。


尝试:mvn -U clean install。-U参数强制maven更新。
PaoloVictor 2011年

Answers:


75

可能是,本地.m2存储库中JAR文件的内容是HTML,内容为“ 301永久移动”。看来mvn无法正确处理“ 301永久移动”。在这种情况下,请从某个位置(例如,中央存储库)手动下载JAR文件,然后将其放入您的.m2存储库。

也可以看看:

asm-3.1.jar; 打开zip文件时出现错误
http://darutk-oboegaki.blogspot.jp/2012/07/asm-31jar-error-in-opening-zip-file.html


4
救生员。万分感谢。为什么未选择此答案作为正确答案?
Swapnil 2012年

2
真的吗!我找到了302。为什么Maven无法处理?为什么您的答案不是答案?救生员++
Egga Hartung

3
有时它不是302,这个想法是正确的。Maven删除了一些描述错误的html内容,并将其保存到jar文件中。
Shellum 2015年

对我来说很好。谢谢!
伊曼纽拉·科尔塔

56

有时会发生此错误。文件损坏。一个对我有用的快速解决方案是:

  • 在您的情况下,请转到您的本地存储库(通常为/.m2/),我看到的是C:\ Users \ suresh.m2)
  • 搜索引起冲突的软件包(通常转到存储库/组织)并将其删除
  • 再试一次安装

这样,您就可以强制获取实际文件

祝你好运!


4
似乎不起作用,我一次又一次删除./m2/repository文件夹,但仍然失败。
楼先生


11

我有同样的问题,但是以前的解决方案对我不起作用。唯一适用于我的解决方案是以下URL。

https://enlightensoft.wordpress.com/2013/01/15/maven-error-reading-error-in-opening-zip-file/

[编辑]

在这里我详细解释

假设您遇到如下错误

[ERROR] error: error reading C:\Users\user\.m2\repository\org\jdom\jdom\1.1\jdom-1.1.jar; error in opening zip file

然后,您必须按照以下步骤。

  1. 首先,删除现有的jar C:\Users\user\.m2\repository\org\jdom\jdom\1.1\jdom-1.1.jar
  2. 然后,您必须从Maven中央存储库手动下载相关的jar。你可以从这个链接下载点击这里
  3. 之后,您必须将下载的jar复制到先前的目录中。C:\Users\user\.m2\repository\org\jdom\jdom\1.1\

然后您可以使用 mvn clean install

希望这对别人有帮助。


您可以扩大回答的范围吗?如果链接消失,那么答案将无济于事。链接中的摘要即可。
roelofs

非常感谢您,我真的很讨厌这件事
TuGordoBello

6
  1. 转到.m2/repository删除有冲突的文件
  2. mvn -U clean install

这些确切的步骤起作用了。我先尝试了#2,没有删除。但是它没有更新存储库,在构建我的应用程序时,尽管jar到位,但读取zip文件时却显示错误。
user1769790

6

在下载依赖项期间连接中断时,可能会发生此错误。 删除相关的存储库文件夹,然后再次运行以下命令以下载损坏文件的新副本。

mvn clean install 

非常感谢 !删除存储库文件夹后即可使用
mnhmilu

5

我也有类似的问题。解决方法是两者兼而有之。我遇到了asm-3.1问题(如Takahiko链接的博客文章中所述。该jar已损坏。我需要从maven中央存储库中手动获取该jar 。将其删除并重试只是再次得到了损坏的jar。仍然在asm-parent上失败,这是一个包含301的HTML的POM文件。再次,它需要我自己手动获取该文件。您可能要检查XML的设置,以查看是否将其设置为其他存储库,例如本地连结伺服器。

如果获取新版本的正确方法失败,请自己手动获取。


2
  1. 我删除了maven下载的jar
  2. 从Google手动下载jar
  3. 将jar放在已删除jar的本地存储库中。

这解决了我的问题。

希望能帮助到你


1

我也遇到同样的问题,我的问题已经解决。解决方案是:

根据给出的错误信息,在maven存储库中找到相应的jar并将其删除。然后在删除后执行mvn install命令。


1

我只是有这个错误。您可以删除文件并再次运行编译命令:

$ sudo rm /Users/Chaklader/.m2/repository/org/apache/poi/poi/3.17/poi-3.17.jar
$ sudo rm /Users/Chaklader/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.7.5/jackson-databind-2.7.5.jar
$ sudo rm /Users/Chaklader/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.7.5/jackson-core-2.7.5.jar

现在,运行命令进行清洁编译:

$ mvn -U clean compile

0

偶然地,我找到了解决此问题的简单方法。使用-X选项运行Maven会强制其尝试其他服务器下载源代码。正确的内容不是某些jar文件中的垃圾HTML,而是正确的内容。

mvn clean install -X > d:\log.txt

在日志文件中,您可以找到以下消息:

Downloading: https://repository.apache.org/content/groups/public/org/apache/axis2/mex/1.6.1-wso2v2/mex-1.6.1-wso2v2-impl.jar
[DEBUG] Writing resolution tracking file D:\wso2_local_repository\org\apache\axis2\mex\1.6.1-wso2v2\mex-1.6.1-wso2v2-impl.jar.lastUpdated
Downloading: http://maven.wso2.org/nexus/content/groups/wso2-public/org/apache/axis2/mex/1.6.1-wso2v2/mex-1.6.1-wso2v2-impl.jar

您会看到,当Maven遇到下载问题时,它已将repository.apache.org切换为maven.wso2.org。因此,以下错误消失了:

[ERROR] error: error reading D:\wso2_local_repository\org\apache\axis2\mex\1.6.1-wso2v2\mex-1.6.1-wso2v2-impl.jar; error in opening zip file

0

对我来说,我应该用另一个来更改settings.xml文件中的.m2存储库,因为在Mac中,maven无法创建以point(。)开头的文件夹。

为了解决这个问题,请打开您的maven / version / conf / settings.xml并指定您的repo文件夹的位置,如下所示:

<localRepository>../repo</localRepository>

不要忘记在IDE中也进行更改,在Eclipse中,请转到:Windows>首选项> Maven>用户设置>全局设置,然后导航到settings.xml。

干净安装您的项目。

希望这会帮助你。


0

这个问题是我的a $$的痛苦,如果我运行,我的Mac上就有这个问题

mvn clean install | grep "error reading"
[ERROR] error reading /Users/ducnguyen/.m2/repository/org/apache/velocity/velocity/1.7/velocity-1.7.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/commons-net/commons-net/3.3/commons-net-3.3.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/org/apache/commons/commons-lang3/3.0/commons-lang3-3.0.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/javax/mail/mail/1.4/mail-1.4.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/org/apache/pdfbox/pdfbox/2.0.0/pdfbox-2.0.0.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/com/itextpdf/itextpdf/5.5.10/itextpdf-5.5.10.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/org/slf4j/slf4j-api/1.7.24/slf4j-api-1.7.24.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/com/aspose/aspose-pdf/11.5.0/aspose-pdf-11.5.0.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/org/apache/velocity/velocity/1.7/velocity-1.7.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/commons-net/commons-net/3.3/commons-net-3.3.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/org/apache/commons/commons-lang3/3.0/commons-lang3-3.0.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.54/bcprov-jdk15on-1.54.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/javax/mail/mail/1.4/mail-1.4.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/org/apache/pdfbox/pdfbox/2.0.0/pdfbox-2.0.0.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/com/itextpdf/itextpdf/5.5.10/itextpdf-5.5.10.jar; error in opening zip file
[ERROR] error reading /Users/ducnguyen/.m2/repository/org/slf4j/slf4j-api/1.7.24/slf4j-api-1.7.24.jar; error in opening zip file

删除所有损坏的库是唯一的解决方案

所以我想一次删除所有这些。

mvn clean install | grep "error reading" | awk '{print "rm " $4 | "/bin/sh"  }'

该命令需要AWK从列$ 4中获取libPath字符串

然后重新运行

mvn clean install

pdfbox 2.0.0已有数年历史,并且存在安全风险,当前版本为2.0.13。并且在脚本中包含“ rm -rf”也是有风险的。
Tilman Hausherr

谢谢@TilmanHausherr,我通过删除`-rf`更新了,是的,我更新了我的存储库以使用pdfbox2.0.13
vanduc1102 '19

0

由于某些文件损坏而发生此错误。 但是我们不需要删除整个.m2文件夹。而是通过查看控制台中的错误消息来查找损坏jar文件。并仅删除包含这些jar文件的文件夹

就像在问题中:

  1. C:\ Users \ suresh \ .m2 \ repository \ org \ jdom \ jdom \
  2. C:\ Users \ suresh \ .m2 \ repository \ javax \ servlet \ servlet-api \
  3. C:\ Users \ suresh \ .m2 \ repository \ org \ apache \ cxf \ cxf-rt-bindings-http
  4. C:\ Users \ suresh \ .m2 \ repository \ org \ codehaus \ jra \ jra
  5. C:\ Users \ suresh \ .m2 \ repository \ org \ apache \ cxf \ cxf-api
  6. C:\ Users \ suresh \ .m2 \ repository \ org \ apache \ cxf \ cxf-common-utilities

删除这些文件夹。然后运行。

mvn全新安装-U


0

建议不要删除整个本地m2存储库。就我而言,我在本地有成百上千个jar,所以我不想只下载一个jar就重新下载它们。以上大多数答案对我都无效,这就是我所做的。

步骤:1:确保是否从settings.xml中的正确Maven存储库下载。就我而言,它是将http://central.maven.org/maven2/称为https://repo1.maven.org/maven2/。因此,它已损坏或发生其他情况?

步骤2:删除本地机器中包含工件和其他详细信息的文件夹,这将迫使它在下次构建时再次下载

步骤3: mvn全新安装:)。

希望能帮助到你。


0

我手动下载了jar文件,并替换了本地目录中的文件,它可以正常工作


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.