使用spring boot创建fat jar APP
文章目录
介绍
在很久很很久以前,我们部署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
更多教程请参考 flydean的博客
使用spring boot创建fat jar APP的更多相关文章
- 使用Spring Boot创建docker image
目录 简介 传统做法和它的缺点 使用Buildpacks Layered Jars 自定义Layer 简介 在很久很久以前,我们是怎么创建Spring Boot的docker image呢?最最通用的 ...
- 利用spring boot创建java app
利用spring boot创建java app 背景 在使用spring框架开发的过程中,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置和复杂的bean依赖关系,特别是在使用mvc的时候各 ...
- Spring Boot 创建 Docker 镜像
随着越来越多的组织转向容器和虚拟服务器,Docker正成为软件开发工作流程中一个更重要的部分.为此,Spring Boot 2.3中最新的功能之中,提供了为Spring Boot应用程序创建 Dock ...
- Spring Kafka整合Spring Boot创建生产者客户端案例
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 创建一个kafka-producer-master的maven工程.整个项目结构如下: ...
- Spring Boot可执行Jar包运行原理
目录 1. 打可执行Jar包 2. 可执行Jar包内部结构 3. JarLauncher 4. 简单总结 5. 远程调试 Spring Boot有一个很方便的功能就是可以将应用打成可执行的Jar.那么 ...
- Spring Boot项目生成jar包,并在windows服务器中注册成服务,开机启动
背景: 使用Spring Boot开发的Web项目,打包生成了一个jar包,希望能部署在Windows服务器中 尝试: 1.Spring Boot生成的jar包,可以直接用java -jar运行,但是 ...
- spring cloud教程之使用spring boot创建一个应用
<7天学会spring cloud>第一天,熟悉spring boot,并使用spring boot创建一个应用. Spring Boot是Spring团队推出的新框架,它所使用的核心技术 ...
- Spring Boot 直接用jar运行项目
概述 在Spring Boot 开篇-创建和运行一文中,介绍了如何创建一个Sprint Boot项目并且运行起来.但是运行的方式是在IDEA中直接Run起来的.还有另一中方式可以可以把Spring B ...
- 曹工杂谈:Linux服务器上,Spring Boot 原地修改 jar 包配置文件/替换class文件,免去重复上传的麻烦
一.前言 相信很多同学有这样的需求,现在很多公司都有多地的研发中心,经常需要跨地区部署,比如,博主人在成都,但是服务器是北京的.一般城市间网络都不怎么好,上传一个几十兆的jar包那是真的慢,别说现在微 ...
随机推荐
- Java 添加、读取和删除 Excel 批注
批注是一种富文本注释,常用于为指定的Excel单元格添加提示或附加信息. Free Spire.XLS for Java 为开发人员免费提供了在Java应用程序中对Excel文件添加和操作批注的功能. ...
- 阿里 IOS 面试官教你在面试中脱颖而出
前言: 知己知彼.百战不殆,面试也是如此. 只有充分了解面试官的思路,才能更好地在面试中充分展现自己. 今天,阿里高级技术专家将分享自己作为面试官的心得与体会.如果你是面试者,可以借此为镜,对照发现自 ...
- echarts整理
保存一些常用的echarts图表及制作方法
- CSS躬行记(4)——浮动形状
CSS规范新增了一个模块:CSS Shapes,shape-outside属性属于该模块,它能影响浮动元素周边内容流的形状(即浮动形状),可接收三类值:形状盒子.函数和图像. 一.形状盒子 形状盒子( ...
- GIT本地安装及汉化
GIT本地安装及汉化过程 1.下载地址: 链接:https://pan.baidu.com/s/1TMxxngZy4Y1De5eC1kSTMg 提取码:e593 2.下载完成之后如下图所示3个文件: ...
- 页面DIV弹出层 JS原生脚本
<script type="text/javascript"> /* * 弹出DIV层 */ function showDiv() { ...
- 【网络编程01】socket的基础知识-简单网络通信程序
1.什么是socket socket(套接字),简单来说是IP地址与端口(port)的组合,可以与远程主机的应用程序进行通信.通过IP地址可以确定一台主机,而通过端口则可以确定某一个应用程序.IP+端 ...
- 中阶d03.3 JDBC_CURD_Util --- 使用 junit执行单元测试(增删改查)
1.单元测试环境准备 https://www.cnblogs.com/longesang/p/11399010.html 2.测试 3.结果返回 4.代码 新建一个test目录统一存放测试案例 查: ...
- 中阶d03 JDBC 使用
1.首先在数据库中创建表 2.安装mysql驱动 java开发环境中导入jdbc连接mysql的jar包 mysql-connector-java-5.1.7-bin.jar 下载地址:https:/ ...
- Sprint1规划暨first stand up meeting
实际上,我们关于工程分配和接口实现的讨论已经好几周了,队(shen)长(xian)大人三令五申,先把接口确定下来,数据格式很重要云云~顺便accent一下,utf-8[虽然我并不太明白为什么要这么干但 ...