Maven 全新安装编译错误无法访问 jar,找不到 zip END 标头

2022-09-04 08:41:45

使用 maven 在 Jenkins 上构建应用程序时,我在运行后看到以下错误:

mvn clean install -q -U -T 1.5C -DskipTests -Dsvn.info.skip=true

错误:

** [错误] 编译错误 : [错误] 读取 /apps/jenkins/workspace/some_branch/.m2/com.some_company/any_random.jar;zip 文件为空
[错误] 无法访问 com.some_company.some_class 无法访问 无法访问 com.some_company.some_class zip 找不到 END 标头无法访问 jar


我尝试排除导致问题的依赖项,因为它是可传递的,但现在它发生在其他依赖项中。

依赖项存储在联结中。

我已经查看了用于构建JARS的JDK,并考虑了网络问题,但没有任何东西可以解释这一点。

清除 Jenkins 和 .m2 文件夹有时适用于一两个版本,但我想找到更好的解决方案。

有什么想法吗?


答案 1

本地 Maven 缓存中的 JAR 已损坏。

只需删除文件

.m2/com.some_company/any_random.jar

,然后再次运行您的目标。也许您的网络或互联网连接速度很慢,或者您的硬盘需要检查。


答案 2

错误再现

一旦我在文件中的标记开头添加了一个全局变量,我就遇到了同样的错误:pom.xml

<url>${env.CI_PROJECT_URL}/api/v4/projects/000/packages/maven</url>

试一试,我在开头添加了字母,即使它没有解析到现有的URL:a

<url>a${env.CI_PROJECT_URL}/api/v4/projects/000/packages/maven</url>

编译工作正常,但由于URL错误,发布无法进行。

溶液

我通过插入服务器的域解决了错误,而我手动将协议部分编写为:https

<url>https://${env.CI_SERVER_HOST}/api/v4/projects/000/packages/maven</url>

在您的情况下,您可能需要应用类似的修改才能解决问题。


推荐