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

时间:2011-09-29 15:53:09

标签: maven

[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开始,我的磁盘上的本地存储库中没有创建任何包。

17 个答案:

答案 0 :(得分:66)

可能是本地.m2存储库中JAR文件的内容是HTML“301 Moved Permanently”。似乎mvn没有按预期正确处理“301 Moved Permanently”。在这种情况下,从某个地方手动下载JAR文件(例如the central repository)并将它们放入.m2存储库。

另见:

  

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

答案 1 :(得分:48)

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

  • 根据您的情况转到您的本地存储库(一般为/.m2/),我看到的是C:\ Users \ suresh.m2)
  • 搜索发生冲突的软件包(通常转到repository / org)并将其删除
  • 再试一次安装

用你强制获取实际文件

祝你好运!

答案 2 :(得分:21)

尝试在/.m2/repository/中删除您的存储库,然后执行mvn clean install再次下载文件。

答案 3 :(得分:8)

我有同样的问题但以前的解决方案对我不起作用。唯一适用于我的解决方案是以下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。您可以从此链接here
  3. 下载
  4. 之后,您必须将下载的jar复制到上一个目录。C:\Users\user\.m2\repository\org\jdom\jdom\1.1\
  5. 然后,您可以使用mvn clean install

    构建项目 希望这会对某人有所帮助。

答案 4 :(得分:6)

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

答案 5 :(得分:5)

我也有类似的问题。修复是两者的混合。我遇到了asm-3.1的问题(正如Takahiko链接的博客文章中提到的那样。那个罐子已经损坏。我需要从the maven central repository手动获取jar。删除它并重试再次获得腐败的jar。它然后仍然在asm-parent上失败,这是一个包含带有301的HTML的POM文件。同样,它需要自己手动获取文件。如果你设置为不同的存储库,你可能想要查看XML要查看的设置,例如本地nexus服务器。

如果获得新手的方法失败,请自行手动抓取。

答案 6 :(得分:5)

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

mvn clean install 

答案 7 :(得分:2)

  1. 我删除了maven下载的jar
  2. 从谷歌手动下载jar
  3. 将jar放在本地仓库中,代替已删除的jar。
  4. 这解决了我的问题。

    希望有所帮助

答案 8 :(得分:1)

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

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

答案 9 :(得分: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

答案 10 :(得分:0)

您还可以检查是否安装了必需的证书,以确保允许下载依赖项。

答案 11 :(得分:0)

我手动下载了jar文件,并将其替换为本地目录中的文件,

答案 12 :(得分:0)

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

步骤:1:确保您是否从settings.xml中的正确Maven存储库下载。就我而言,它是指http://central.maven.org/maven2/https://repo1.maven.org/maven2/。那么它变得损坏了吗?

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

STEP:3: mvn全新安装:)。

希望有帮助。

答案 13 :(得分: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

答案 14 :(得分: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

答案 15 :(得分:0)

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

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

<localRepository>../repo</localRepository>

不要忘记在IDE中更改它,在eclipse中转到:Windows&gt;偏好&gt; Maven&gt;用户设置&gt;全局设置,然后导航到settings.xml。

清理安装项目。

希望这会对你有所帮助。

答案 16 :(得分: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