文章目录

  • 介绍
  • build和run
  • fat jar和 fat war
  • 更多配置

介绍

在很久很很久以前,我们部署web程序的方式是怎么样的呢?配置好服务器,将自己写的应用程序打包成war包,扔进服务器中指定的目录里面。当然免不了要配置一些负责的xml和自定义一些servlet。

现在有了spring boot,一切都变了,我们可以将web应用程序打包成fat jar包,直接运行就行了。

本文将会关注于怎么使用Spring Boot创建一个fat jar包。

所有你需要做的就是添加如下依赖:

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

build和run

有了上面的配置,只需要使用

mvn clean install

就可以生成相应的jar包了。

如果要运行它,使用:

java -jar <artifact-name>

即可。非常简洁。

如果你要在服务器上面永久运行该服务,即使登录的用户退出服务器,则可以使用nohup命令:

nohup java -jar <artifact-name>

fat jar和 fat war

在上面的例子中,所有的依赖jar包都会被打包进入这一个fat jar中,如果你使用了tomcat,那么tomcat也会被打包进去。

但有时候我们还是需要打包成war包,部署在服务器中,这种情况只需要将pom.xml中的packaging属性修改为war即可。

更多配置

大多情况下,我们不需要额外的配置,如果我们有多个main class,我们需要指定具体的哪个类:

    <properties><start-class>com.flydean.FatJarApp</start-class></properties>

如果你没有从spring-boot-starter-parent继承,那么你需要将main class添加到maven plugin中:

<plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.flydean.FatJarApp</mainClass><layout>ZIP</layout></configuration></plugin></plugins>

有些情况下,你需要告诉maven来unpack一些依赖:

<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><requiresUnpack><dependency><groupId>org.jruby</groupId><artifactId>jruby-complete</artifactId></dependency></requiresUnpack></configuration>
</plugin>

本文的代码请参考https://github.com/ddean2009/learn-springboot2/tree/master/springboot-fatjar

更多精彩内容且看:

  • 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
  • Spring Boot 2.X系列教程:七天从无到有掌握Spring Boot-持续更新
  • Spring 5.X系列教程:满足你对Spring5的一切想象-持续更新
  • java程序员从小工到专家成神之路(2020版)-持续更新中,附详细文章教程

更多教程请参考 flydean的博客

使用spring boot创建fat jar APP相关推荐

  1. spring boot java app_利用spring boot创建java app

    利用spring boot创建java app 背景 在使用spring框架开发的过程中,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置和复杂的bean依赖关系,特别是在使用mvc的时候各 ...

  2. Spring教程:使用Spring框架和Spring Boot创建Hello World REST API

    由于Java社区对早期版本的Enterprise Java感到失望,因此创建了Spring Framework . 从那时起,它已经发展成为一个巨大的生态系统,可以解决构建基于Web的Java应用程序 ...

  3. jar注册成服务器,Spring Boot项目生成jar包,并在windows服务器中注册成服务,开机启动(示例代码)...

    背景: 使用Spring Boot开发的Web项目,打包生成了一个jar包,希望能部署在Windows服务器中 尝试: 1.Spring Boot生成的jar包,可以直接用java -jar运行,但是 ...

  4. spring cloud教程之使用spring boot创建一个应用

    <7天学会spring cloud>第一天,熟悉spring boot,并使用spring boot创建一个应用. Spring Boot是Spring团队推出的新框架,它所使用的核心技术 ...

  5. 在Spring Boot中配置web app

    文章目录 添加依赖 配置端口 配置Context Path 配置错误页面 在程序中停止Spring Boot 配置日志级别 注册Servlet 切换嵌套服务器 在Spring Boot中配置web a ...

  6. Spring Boot配置文件放在jar外部

    Spring Boot配置文件放在jar外部 2018年03月16日 10:09:17 qq_37334435 阅读数:1488 Spring Boot程序默认从application.propert ...

  7. Spring Boot笔记-自动配置(Spring Boot封装成jar被其他项目引用)

    特点: 这里也就是自己写个Service注册到别人的SpringBoot项目中,然后别人来调用这个Service,这个Service,先读取自己的application.properties,再读取引 ...

  8. 【spring boot】5.spring boot 创建web项目并使用jsp作前台页面

    贼烦的是,使用spring boot 创建web项目,然后我再idea下创建的,but 仅仅启动spring boot的启动类,就算整个项目都是好着的,就算是能够进入controller中,也不能成功 ...

  9. spring boot所打的jar在服务器启动时,日志打印时间、jar所使用时间和系统当前时间不一致

    1.spring boot所打的jar在服务器启动时,日志打印时间.jar所使用时间和系统当前时间不一致 1)系统时间 2)日志打印时间 2.解决方法 在启动的时间添加-Duser.timezone= ...

最新文章

  1. R语言生存分析COX回归分析实战:以乳腺癌数据为例
  2. 凸显价值:全国CIO交流大会7月20-22日将于青海举办
  3. wifiphisher 钓鱼工具的使用
  4. 面试一位硕士海龟前端小姐姐有感
  5. connectionstring mysql_Entity Framework 6 自定义连接字符串ConnectionString连接MySQL
  6. 抓包工具-charles安装过程
  7. hbase 预写日志_HBase存储结构
  8. (23)FPGA加法器设计(第5天)
  9. 怎么查看这个docker 有没有 restart 属性_感受 Docker 魅力, 排解决多应用部署之疼,Docker Compose + Spring Boot 实践...
  10. 9-13 ruby环境准备
  11. mysql+数据库主从原理_MySQL主从复制原理及实现
  12. 秒杀安全狗的经验总结
  13. sql2005安装图解
  14. win7 ie11 uninstall卸载
  15. Redis缓存过期和淘汰策略
  16. Git生成生成公钥和私钥
  17. 头歌平台数据可视化-第五关时间空间数据的可视化——等高线图
  18. java运行环境配置
  19. 写一个方法把字符串大小写进行切换【前端每日一题-2】
  20. 同花顺概念板块成分股数据分享

热门文章

  1. 安卓进阶系列-07数据库框架(GreenDAO)的使用
  2. 【网络编程】之四、socket网络编程例解
  3. 深入理解缓存系统|单机QPS突破千万优化之路
  4. 深入理解Linux内核之主调度器
  5. 史上最详细的MySQL操作事例
  6. 多媒体技术 PI 第一期:OSS 圆桌预告
  7. URL2Video:把网页自动创建为短视频
  8. 【跨Web与客户端多媒体开发】
  9. 快手直播平台演进之路
  10. 音视频技术开发周刊 60期