Maven问题记录:本地打包成功,远程打包报错,找不到依赖包

博客讲述了Maven打包项目时遇到的问题,即只能在本机打包成功,在其他机子或服务器jenkins上打包报某个依赖下不来,但在私服能找到且可下载。原因是deploy时只上传了依赖子包,未上传父包。解决方法是将依赖包的父包也deploy到私服。

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

问题

之前项目中碰到一个问题,使用Maven打包某项目只能在本机打成功,在别人的机子上或用服务器的jenkins都报某个依赖下不下来的问题,去Maven的私服上查找却又能找到,并且可以下载,但是通过maven命令(jenkins里打包其实也是通过maven命令实现的)来打包却又找不到这个依赖

原因

后来发现是这个依赖包deploy到私服的问题。
由于项目中只用到了该依赖包,并未用到它的父包,所以当时在deploy时只把作为子包的该依赖包上传到私服上,并未把该包的父包同时上传,导致本机打包时maven可通过本机代码或本地仓库找到该依赖包及其父包,在别的机子上打包时由于只能从私服里找到该依赖包,不能找到其父包,会报找不到该依赖包的问题(为什么报的是找不到私服中存在的该依赖包,而不是找不到没上传的父包,这点很奇怪,望知道的大佬给解解惑orz)

解决方法

将该依赖包的父包也deploy到私服上

### Maven 打包 `flatten-maven-plugin` 插件版本1.4.1 报错解决方案 当遇到 `flatten-maven-plugin` 版本1.4.1在执行 `flatten` 目标时报错的情况,可以采取以下措施来解决问题。 #### 确认Maven版本 确保使用的 Maven 版本不低于3.5。较低版本可能不完全兼容该插件的功能需求[^1]。可以通过命令行输入 `mvn -v` 来查看当前安装的Maven版本号。 #### 验证本地仓库中的插件状态 检查本地Maven仓库内是否有 `flatten-maven-plugin` 的缓存文件存在。如果不存在,则可能是下载失败或其他网络原因造成的缺失。尝试清理并重新加载依赖项: ```shell mvn clean install -U ``` 此操作会强制更新过期或未到的远程资源到本地存储库中。 #### 修改POM配置 对于特定版本(如1.4.1),可以在项目的pom.xml文件里指定更精确的配置参数以适应不同的环境设置。例如: ```xml <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>flatten-maven-plugin</artifactId> <version>1.4.1</version> <configuration> <!-- 自定义配置选项 --> <updatePomFile>true</updatePomFile> <flattenMode>resolveCiFriendliesOnly</flattenMode> </configuration> <executions> <execution> <id>flatten</id> <phase>validate</phase> <goals> <goal>flatten</goal> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 上述XML片段展示了如何调整插件的行为模式以及绑定生命周期阶段等细节[^2]。 通过以上几个方面的排查与修正,应该能够有效处理因 `flatten-maven-plugin` 导致的打包过程中出现的各种异常情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值