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 &
总结
到此这篇关于maven打包失败踩坑的解决方式的文章就介绍到这了,更多相关maven打包失败解决内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
IDEA2023创建MavenWeb项目并搭建Servlet工程的全过程
Maven提供了大量不同类型的Archetype模板,通过它们可以帮助用户快速的创建Java项目,这篇文章主要给大家介绍了关于IDEA2023创建MavenWeb项目并搭建Servlet工程的相关资料,需要的朋友可以参考下2023-10-10详解java封装返回结果与RestControllerAdvice注解
这篇文章主要为大家介绍了java封装返回结果与RestControllerAdvice注解实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-09-09SpringBoot中 Jackson 日期的时区和日期格式问题解决
因为最近项目需要国际化,需要能够支持多种国际化语言,目前需要支持三种(法语、英语、简体中文),这篇文章主要介绍了SpringBoot中 Jackson 日期的时区和日期格式问题,需要的朋友可以参考下2022-12-12
最新评论