网站首页 > 技术文章 正文
栈长在之前的文章分享过关于 Spring Boot 打包运行的两篇文章:
- 运行 Spring Boot 应用的 3 种方式
- Spring Boot 怎么打一个可执行 Jar 包?
不过一直没机会对 Spring Boot Maven 插件做详细介绍。
Spring Boot 对 Maven 一直支持很友好,栈长也一直在用 Maven 进行依赖和项目管理,那么今天就讲一下这个插件的作用,非常有用!
有了 Spring Boot Maven Plugin 这个插件,我们可以将项目打成可执行的 jar 包(*.jar)以及 war 包(*.war),可以帮助我们很方便的运行 Spring Boot 应用。
官方地址:
https://docs.spring.io/spring-boot/docs/current/maven-plugin/index.html
主要包括以下几个目标(goals)
- spring-boot:run
可以不用打包,直接运行 Spring Boot 应用。
- spring-boot:repackage
可以打成可执行的运行包(.jar/\.war)
- spring-boot:start/ spring-boot:stop
用于管理 Spring 应用程序的生命周期(例如:用于集成测试)。
- spring-boot:build-info
用于生成构建信息,用于 Spring Boot Actuator。
如何使用
下面主要讲一下前面两种 goal 的使用,后面两种用的比较少。
集成 Spring Boot Maven Plugin 插件:
<build>
...
<plugins>
...
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.2.6.RELEASE</version>
</plugin>
...
</plugins>
...
</build>
1、直接运行 Spring Boot 应用
在 Maven 命令行使用:
mvn spring-boot:run
如果在 IDE 开发工具中,可以省去 mvn 命令:
当然,我们可以直接运行 main class,但使用 Maven 插件可以有更多的功能特性,比如:切换不同环境配置(Profile), 资源替换 Maven Resource 插件的结合使用。
默认情况下,插件运行在一个新进程中,命令行设置的 JVM 参数是不生效的,需要单独指定:
-Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev"
你也还可以指定其他参数:
- systemPropertyVariables:系统属性变量
- environmentVariables:环境变量
除此之外,其他 JVM 参数,都可以在命令后面指定。
2、打成可执行包
来看一个完整示例:
<build>
...
<plugins>
...
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.2.6.RELEASE</version>
<configuration>
<mainClass>${start-class}</mainClass>
<layout>jar</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
以下几个参数都是可选的。
repackage:
最主要的是要添加 repackage goal,用来重新打包。
layout:
layout 属性根据项目类型默认是:jar/war,具体可以设置以下几种:
- JAR:可执行 jar 包;
- WAR:可执行 war 包;
- ZIP(别名:DIR):和 jar 包相似,使用的是:PropertiesLauncher;
- NONE:打包所有依赖项和项目资源。不绑定任何启动加载器;
classifier:
默认情况下只会打一个包,但是如果这个模块既是其他模板的依赖,自身又需要打成可执行的运行包,那就需要用这个标签另外指定一个别名包,如:
- xxx.jar
- xxx-exec-jar
具体参考:
https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/repackage-classifier.html
Spring Boot 打包这个插件经常会用到,大家还是要学会使用它,不然出去面试,面试官一问 Spring Boot 项目如何打包,你就一脸 MB 了。
另外,大家如果对 Maven 不熟悉的可以点击下面的了解更多链接在Java技术栈后台回复:Maven,我之前也分享过一系列核心教程。
好了,今天的分享就到这里了,更多使用的方法大家都可以官方学习,觉得本文不错别忘了点个在看和转发哦!
猜你喜欢
- 2024-10-21 Spring Boot中添加Thymeleaf模板 springboot 添加filter
- 2024-10-21 Spring Boot 的静态资源处理 springboot静态资源配置
- 2024-10-21 Spring Boot 系列@ControllerAdvice 拦截异常并统一处理
- 2024-10-21 Spring Boot 入门教程 | 图文讲解
- 2024-10-21 牛刀小试——五分钟入门Spring Boot
- 2024-10-21 我教你初识SpringBoot——写HelloWorld
- 2024-10-21 Springboot静态资源的访问 springboot2.0静态资源
- 2024-10-21 每日分享- springboot 微服务项目如何集成 html
- 2024-10-21 11:SpringBoot整合JavaMail实现邮件发送功能
- 2024-10-21 SpringBoot中异步请求和异步调用(看这一篇就够了)
你 发表评论:
欢迎- 02-20利用神经网络模型检测摄像头上的可疑行为
- 02-20直击心灵:高频核心听力你了解吗?_高频听力的正常范围值是多少
- 02-20YOLOv8 POSE+XGBoost进行人体姿态检测
- 02-20100个篮球英文术语详细解释,从此听懂NBA解说
- 02-20最全紧固件中英文对照,外贸必备词典一
- 02-20带你开发一个视频动态手势识别模型
- 02-20详细介绍一下Java基础中HashMap如何进行扩容操作?
- 02-20GTX 1070 Ti显卡评测:你会购买哪一款?
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)