Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.6:jar

本文介绍了一个常见的Maven打包错误,即版本号为空的问题,并提供了详细的解决方案。通过检查并修正pom文件中未指定版本号的依赖,成功解决了Jenkins打包过程中的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在jenkins打包过程中出现了如下错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.6:jar (default-jar) on project rule-engine-entity: Error assembling JAR: For artifact {redis.clients:jedis:null:jar}: The version cannot be empty. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging

经过google查找发现类似错误:

https://stackoverflow.com/questions/38011232/maven-for-artifact-the-version-cannot-be-empty

For artifact {org.springframework.boot:spring-boot-starter-data-jpa:null:jar}

 文章中的错误如上,是pom文件中没有spring-boot-starter-parent导致的。

于是乎,查看pom中依赖的redis jar包,确实没有指定版本号。加上版本号,mvn clean install 成功。

### Maven 构建过程中 `maven-surefire-plugin` 执行失败的解决方案 在使用 Maven 构建项目时,可能会遇到 `Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin` 的错误。这种问题通常发生在执行 `mvn test` 或 `mvn install` 等命令时,导致构建流程中断。以下是常见的解决方法和建议。 #### 1. **跳过测试** 一种快速绕过此问题的方式是直接跳过测试阶段,通过配置 `maven-surefire-plugin` 插件来实现: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.0</version> <!-- 可根据需要调整版本 --> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> ``` 该配置会跳过所有测试,适用于某些紧急情况下临时解决问题 [^5]。 #### 2. **检查网络连接** 如果错误提示中包含类似 `Could not transfer artifact` 或 `Remote host closed connection during handshake` 的信息,则可能是由于网络问题导致插件依赖无法下载。确保 Maven 能够访问远程仓库(如 Maven Central)。可以尝试更换网络环境或配置代理以解决此类问题 [^3]。 #### 3. **更新插件版本** 某些旧版本的 `maven-surefire-plugin` 存在兼容性问题或已知缺陷。升级到最新稳定版本通常能有效避免此类问题。例如,将插件版本从 `2.12.4` 或 `2.19.1` 更新至 `2.22.2` 或更高版本: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> </plugin> ``` #### 4. **查看测试报告定位具体失败原因** 当错误提示为 `There are test failures` 时,应进一步查看测试报告文件。Maven 默认会在 `target/surefire-reports/` 目录下生成详细的测试结果日志。通过分析这些日志,可以精准定位哪个测试用例失败以及失败的原因,从而进行针对性修复 [^4]。 #### 5. **清理本地仓库并重新安装依赖** 有时,本地 Maven 仓库中的依赖文件可能损坏或不完整,这可能导致插件加载失败。可以通过删除本地 `.m2/repository/org/apache/maven/plugins/maven-surefire-plugin` 目录下的内容,然后重新运行 `mvn clean install` 命令让 Maven 自动重新下载相关依赖 [^3]。 #### 6. **JDK 版本兼容性问题** 确保使用的 JDK 版本与 `maven-surefire-plugin` 兼容。某些较老版本的插件对新版本的 Java 支持不佳,可能导致测试执行失败。建议使用与项目兼容的 JDK,并保持插件版本同步 [^1]。 #### 7. **排除冲突依赖** 如果项目引入了多个不同版本的 JUnit 或其他测试框架依赖,可能会引发类路径冲突,进而影响 `surefire-plugin` 正常运行。通过 `<exclusion>` 标签排除不必要的测试依赖,确保只保留一个主要版本 [^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值