当前位置: 首页 > news >正文

踩坑:maven打包失败的解决方式总结

Maven打包失败原因总结如下:

失败原因1:无法使用spring-boot-maven-plugin插件

使用spring-boot-maven-plugin插件可以创建一个可执行的JAR应用程序,前提是应用程序的parent为spring-boot-starter-parent。

需要添加parent的包spring-boot-starter-parent

<!-- 版本选当时的版本 -->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.6.RELEASE</version><relativePath/>
</parent>

在多模块依赖时,若parent包不是的spring-boot-starter-parent,而是自己定义的包,则应该在插件中添加如下配置:

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><goals><goal>repackage</goal></goals></execution></executions>
</plugin>

失败原因2:包无法被依赖
根据官网的说法,直接生成的包是可执行的jar包,可执行jar包无法被依赖。

通过解压缩jar包,可以看到可执行的jar包有BOOT-INF和META-INF文件夹,可被依赖的jar包无BOOT-INF文件夹,只含有META-INF文件夹。
通过以下配置生成两个jar包,可以被依赖。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier></configuration></plugin></plugins>
</build>

在这里插入图片描述

报错:程序包xxx不存在!
失败原因3:在子模块中执行打包命令,而不是执行的父模块的插件
例如:各模块的依赖结构如下

  • generic-admin //管理员模块
  • generic-common //公共模块
  • generic-security //安全模块
  • generic-pom //父模块

管理员模块依赖安全模块,安全模块依赖公共模块,他们都有父模块。

有的人在子模块中也添加了插件,若在子模块中执行打包命令,只能打包单独的模块,会出现程序包不存在的报错。

<!--插件配置-->
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

在这里插入图片描述

正确的做法:应该在父模块执行打包命令!
插件配置如下:

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions>
</plugin>

最后,生成jar包后,执行命令启动

nohup java -jar  xxx.jar &
http://www.lryc.cn/news/27866.html

相关文章:

  • 【C++】位图
  • 蓝桥杯-考勤刷卡
  • 如何利用站内推广和站外推广提高转化率?
  • Java多线程(三)——线程池及定时器
  • Linux命令行安装Oracle19c教程和踩坑经验
  • Linux常用命令等
  • CEC2014:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解CEC2014(提供MATLAB代码
  • MyBatis底层原理【源码运行时序图】
  • k8s 系列之 CoreDNS 解读
  • 从测试鸡蛋硬度到跳表的设计
  • 3D立体视觉成像原理介绍【一 】
  • CEC2021:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解CEC2021(提供MATLAB代码
  • 0301_对应的南京比特物联网
  • 钡铼技术BL302 ARM工控机QT图形化界面开发的实践
  • Python try except异常处理详解(入门必读)
  • 信息系统基本知识(三)软件工程
  • Linux下软件部署安装管理----rpmbuild打包rpm包部署安装
  • ThreadLocal学会了这些,你也能和面试官扯皮了!
  • 【存储】存储特性
  • Qt使用OpenGL进行多线程离屏渲染
  • Vue基础入门讲义(三)-指令
  • pod资源限制,探针(健康检查)
  • Python | 蓝桥杯进阶第一卷——字符串
  • 2023-03-03 mysql列存储-cpu占用100%-追踪思路
  • JVM—类加载子系统
  • 在codeIgniter3中session.php中的数组追加值
  • Windows环境下Gpu版本的Pytorch安装
  • 项目实战典型案例13——学情页面逻辑问题
  • 工作日志day02
  • C++Primer16.1.6节练习