应用背景:直接使用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插件就已经可以满足。

GitHub 加速计划 / ma / maven
25
0
下载
Maven: Apache Maven是一个开源的项目管理和构建工具,主要用于Java项目。适合需要自动化项目构建和依赖管理的开发者。特点包括约定优于配置、易于使用和社区驱动。
最近提交(Master分支:3 个月前 )
575ad371 As it uses now String.format that produces different decimal separator based on local, most notable DE --- https://issues.apache.org/jira/browse/MNG-8454 1 天前
5f19dae0 Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.26.3 to 3.27.0. - [Release notes](https://github.com/assertj/assertj/releases) - [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.26.3...assertj-build-3.27.0) --- updated-dependencies: - dependency-name: org.assertj:assertj-core dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- https://issues.apache.org/jira/browse/MNG-8458 1 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐