我们在Maven的使用插件一节中介绍了如何使用maven-shade-plugin打包一个可执行的jar包。在Spring Boot应用中,打包更加简单,因为Spring Boot自带一个更简单的spring-boot-maven-plugin插件用来打包,我们只需要在pom.xml中加入以下配置:

<project ...>...<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

无需任何配置,Spring Boot的这款插件会自动定位应用程序的入口Class,我们执行以下Maven命令即可打包:

$ mvn clean package

以springboot-exec-jar项目为例,打包后我们在target目录下可以看到两个jar文件:

$ ls
classes
generated-sources
maven-archiver
maven-status
springboot-exec-jar-1.0-SNAPSHOT.jar
springboot-exec-jar-1.0-SNAPSHOT.jar.original

其中,springboot-exec-jar-1.0-SNAPSHOT.jar.original是Maven标准打包插件打的jar包,它只包含我们自己的Class,不包含依赖,而springboot-exec-jar-1.0-SNAPSHOT.jar是Spring Boot打包插件创建的包含依赖的jar,可以直接运行:

$ java -jar springboot-exec-jar-1.0-SNAPSHOT.jar

这样,部署一个Spring Boot应用就非常简单,无需预装任何服务器,只需要上传jar包即可。

在打包的时候,因为打包后的Spring Boot应用不会被修改,因此,默认情况下,spring-boot-devtools这个依赖不会被打包进去。但是要注意,使用早期的Spring Boot版本时,需要配置一下才能排除spring-boot-devtools这个依赖:

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludeDevtools>true</excludeDevtools></configuration>
</plugin>

如果不喜欢默认的项目名+版本号作为文件名,可以加一个配置指定文件名:

<project ...>...<build><finalName>awesome-app</finalName>...</build>
</project>

这样打包后的文件名就是awesome-app.jar。

小结

  • Spring Boot提供了一个Maven插件用于打包所有依赖到单一jar文件,此插件十分易用,无需配置。

打包Spring Boot应用相关推荐

  1. Maven 如何打包 Spring Boot 项目

    如果你使用的是 Maven 开发 Spring Boot 项目的话,在你打包可执行文件的时候,你首先需要导入 spring-boot-maven-plugin 插件. 请查看下面的代码: <bu ...

  2. IDEA打包spring boot工程为war包并部署到阿里云服务器

    一.打包 1.首先修改pom.xml中的代码,把<packaging></packaging>中的jar改为war 2.点击IDEA左下角按钮,之后点击右侧边栏的Maven P ...

  3. docker maven 打包jar_maven 打包 spring boot 生成docker 镜像

    1.所使用材料 ,spring boot 项目 基于maven ,maven 工具, docker工具 ps:为啥使用 docker 公司微服务需要启动太多,有两个优点吧! 1.方便管理,2.减少服务 ...

  4. 使用Spring Boot Thin Launcher 打包Spring Boot项目,jar包瘦身

    原文地址:https://www.jianshu.com/p/3fa4039d90d7 -------------------------------------------------------- ...

  5. 通过Maven构建打包Spring boot,并将config配置文件提取到jar文件外

    如果通过不同的IDE打包,着实会觉得依赖性太大,并且容易出现错误,操作也比较复杂 同时,spring-boot-maven-plugin的使用感觉,相关配置太少,并且无法满足方便部署和运行的需求. 这 ...

  6. Idea利用maven打包spring boot项目

    1.pom.xml文件中增加以下配置 <build><plugins><plugin><groupId>org.springframework.boot ...

  7. Spring Boot 打包分离依赖 JAR 和配置文件

    Spring Boot 打包分离依赖 JAR 和配置文件 2018年07月11日 15:17:09 <span class="read-count">阅读数 6145& ...

  8. Spring boot(web 组件,ORM 操作 MySQL,接口架构风格—RESTful,集成 Redis,集成 Dubbo,打包)

    文章目录 1.3 第三章 Spring Boot 和 web 组件 1.3.1 SpringBoot 中拦截器 1.3.2 Spring Boot 中使用 Servlet 1.3.3 Spring B ...

  9. Spring Boot打包

    当一个项目开发完毕,需把其进行打包并部署到服务器上运行. 一. Spring Boot如何打包 Spring Boot有两种打包方式:jar, war.两者区别在于jar内嵌了tomact,而war没 ...

最新文章

  1. sqlite3之基本操作(二)
  2. 【转】并行计算、分布式计算、集群计算和云计算
  3. 你真的需要 @DirtiesContext?
  4. 数据结构:栈的了解与示例(逆波兰表达式)
  5. 图片base64编码显示
  6. VUE下载文件并修改文件名
  7. 文献阅读(SRCNN)
  8. DFT泄漏 频谱泄漏 (FFT)
  9. 网络流量在线分析系统的设计与实现
  10. python如何自己写库_亲自动手写一个python库(二)
  11. 如何解决程序员沟通之痛?
  12. Python 爬取优美图库图片
  13. 2005高中数学联赛第15题补充解答
  14. 个嵌入式牛人学习经历
  15. mysql数据库一些常用操作
  16. matlab导入示波器multisim,Multisim中示波器的使用方法
  17. 如何构建业务数据分析体系
  18. 以python自定义模块的方式共享API(数据,短信通知、邮件通知,代理等)
  19. USACO05JAN「Naptime」
  20. Altair Activate 2021.1 x64

热门文章

  1. 计算机系统结构自学试卷,全国2004年4月高等教育自学考试计算机系统结构试题...
  2. VMware 6 个少为人知的技巧
  3. Spring MVC学习总结(13)——Spring MVC集成Swagger时文档无法排序问题
  4. 你应该知道的大数据领域12大动向
  5. python输入输出有问题_Python中的输入与输出
  6. python100个内置函数详解_Python 63个内置函数详解
  7. 戴尔SC5020发布,专为提高效率/经济性优化设计的中端存储利器
  8. 习题:Dual Matrices(思路题/分治)
  9. HttpClient_用Apache HttpClient实现URL重定向
  10. CoreTextHyperlinkView