SpringBoot2.x基础篇:将应用程序打包为可执行Jar
2020/2/20 17:01:36
本文主要是介绍SpringBoot2.x基础篇:将应用程序打包为可执行Jar,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
知识改变命运,撸码使我快乐,2020继续游走在开源界
点赞再看,养成习惯
给我来个Star吧,点击了解下基于SpringBoot的组件化接口服务落地解决方案
应用程序在编写完成后,有一个重要的阶段就是发布,当我们发布时需要将应用程序进行打包,那通过SpringBoot
编写的应用程序该如何打包呢?
推荐阅读
打包方式
应用程序的发布一般有两种形式。
比较传统的方式是外置Tomcat
,将应用程序打包成一个xx.war
文件,该文件内只有应用程序源码编译后的.class
以及配置文件
。
而SpringBoot
还提供了另外一种高效率的打包方式,在pom.xml
内通过配置maven plugin
,执行mvn package
打包命令时会将src/main/java
、src/main/resources
目录下的全部文件进行打包,最终生成一个xx.jar
的文件,由于SpringBoot
打包时默认会将Tomcat
的相关依赖一并放入到xx.jar
内,所以通过java -jar xx.jar
命令行的方式可以直接运行。
打包插件
我们通过IDEA
创建SpringBoot
项目时,一般在pom.xml
文件内默认已经添加了打包maven plugin
,如下所示:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>复制代码
注意事项:如果你不是通过
spring-boot-starter-parenter
方式构建的SpringBoot
应用程序,需要手动配置,有关插件的使用文档,详见 Spring Boot Maven Plugin
执行打包
使用Maven
构建的SpringBoot
应用程序打包方式很简单,我们只需要通过命令在应用程序的根目录
下执行mvn package
即可,如下所示:
➜ developing-first-application git:(2.x) mvn package [INFO] Scanning for projects... [INFO] [INFO] ----------< org.minbox.chapter:developing-first-application >----------- [INFO] Building developing-first-application 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- 省略部分编译日志...... [INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ developing-first-application --- [INFO] Building jar: /Users/yuqiyu/study/article-source-code/spring-boot-chapter/developing-first-application/target/developing-first-application-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.2.4.RELEASE:repackage (repackage) @ developing-first-application --- [INFO] Replacing main artifact with repackaged archive [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.711 s [INFO] Finished at: 2020-02-20T15:02:24+08:00 [INFO] ------------------------------------------------------------------------ 复制代码
当控制台出现BUILD SUCCESS
时,证明我们本次package
已经成功了,当前应用程序的可执行Jar
也已经生成,位于target
目录下。
打包文件命名
spring-boot-maven-plugin
插件打包完成后生成的文件名默认的格式为:
,如:developing-first-application-0.0.1-SNAPSHOT.jar
,如果这并不是你想要的格式化,可以通过如下方式进行自定义:
<build> <finalName>service-application-${version}</finalName> </build>复制代码
注意事项:
与
是同级的配置,可以使用占位符属性
${属性名}
的方式来进行格式化命名内容,这只是文件的名称,在打包完成后后缀名.jar
会自动追加。
跳过测试
项目在打包过程中会自动运行测试
,来检查项目是否可以通过运行测试以及测试脚本的执行是否有效,一般这个过程是需要一定时间的,项目内容越多需要的时间就会越久,如果你想跳过这个测试过程,只需要添加一个很简单的
属性配置即可,如下所示:
<properties> <maven.test.skip>true</maven.test.skip> </properties>复制代码
这样我们再运行mvn package
时,就会跳过测试步骤。
运行Jar
要运行该应用程序,可以使用java -jar
命令,如下所示:
➜ developing-first-application git:(2.x) ✗ java -jar target/service-application-0.0.1-SNAPSHOT.jar . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.2.4.RELEASE) 2020-02-20 15:29:39.615 INFO 3208 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2020-02-20 15:29:39.626 INFO 3208 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2020-02-20 15:29:39.626 INFO 3208 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.30] 2020-02-20 15:29:39.953 INFO 3208 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2020-02-20 15:29:39.955 INFO 3208 --- [ main] o.m.c.d.f.a.DevelopingFirstApplication : Started DevelopingFirstApplication in 1.539 seconds (JVM running for 1.868) 复制代码
如果想要退出该应用程序,请按
Ctrl + C
。
作者个人 博客
使用开源框架 ApiBoot 助你成为Api接口服务架构师
这篇关于SpringBoot2.x基础篇:将应用程序打包为可执行Jar的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-14百万架构师第十六课:源码分析:Spring 源码分析:手写SpringAOP核心原理|JavaGuide
- 2025-01-14百万架构师第十七课:源码分析:Spring 源码分析:Spring声明式事务操作实现原理|JavaGuide
- 2025-01-142024年常用的语言翻译API
- 2025-01-14折腾之王:JavaScript 之父 Brave 浏览器与 BAT 的诞生
- 2025-01-13从协作到创新:电商团队效率提升新方法
- 2025-01-13汉服销售拓展客源,能精准投放广告的软件求推荐!蛇年新春!
- 2025-01-13提升客户体验的关键:电商团队协作效率优化
- 2025-01-13不触碰资金的支付网关有哪些?
- 2025-01-13如何运用敏捷开发的6大模型来提高团队工作效率?
- 2025-01-13汉服制作质量检测,能高清放大细节的软件用哪个?2025 新春!