spring-boot中spring-boot-maven-plugin报红错误及解决
作者:wowolz
spring-boot-maven-plugin报红错误
项目场景
第一次创建springboot的时候,spring-boot-maven-plugin 爆红
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> // 红彤彤 <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
解决方案
1.在选择创建Spring Initailizr项目时,选择spring-boot版本
2.忘记选择版本号时(idea默认2.5.4),在如下图所示的地方加入version版本号,要与spring-boot版本号一致哦~
再刷新一下pom.xml就ok了~
Maven插件spring-boot-maven-plugin
应用背景
直接使用maven自带的package打包功能,在打Jar包的时候,不会将该项目所依赖的Jar包一起打进去,在使用“java -jar”命令启动项目时会报错,项目无法正常启动。
这个时候,我们就可以考虑引用spring-boot-maven-plugin插件来为项目打Jar包。
spring-boot-maven-plugin:使用此插件在打Jar包时会引入依赖包
maven项目的pom.xml中,添加了下述插件,当运行“maven package”进行打包时,会打包成一个可以直接运行的JAR文件,使用“java -jar”命令就可以直接运行。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.5.5</version> </plugin> </plugins> </build>
一般的maven项目的打包命令,在打Jar包时不会把依赖的jar包也打包进去,但是spring-boot-maven-plugin插件,会将依赖的jar包全部打包进去。
例如下面这个使用spring-boot-maven-plugin插件打包生成的jar包的BOOT/INF/lib目录下面就包含了所有依赖的jar包:
如果没有使用spring-boot-maven-plugin插件打包的话,那么它的目录结构是:
对于使用上述spring-boot-maven-plugin插件打包生成的包,可直接使用下述命令启动项目
java -jar xxx.jar
特别说明
引入了spring-boot-maven-plugin插件后,在使用打包功能时会将mvn package 生成的 jar或者war 重新打包成可执行文件,同时修改原文件名,增加.origin 后缀。
如果项目需要打包为war包,则其实不需要引入该插件,maven原生自带的package插件就已经可以满足。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。