部署springboot项目到云服务器的两种方式(jar+war)
目录
- 方式一、以jar文件运行
- 添加maven依赖
- 将项目打包
- 将jar文件放到服务器
- 在服务器运行jar文件
- 浏览器访问
- 2、以war方式部署
- 修改打包方式
- 移除嵌入式tomcat插件
- 打包
- 部署
- 浏览器访问
- 总结
云服务器:阿里云ECS CentOS 7.3 64位
IDE:IntelliJ IDEA
服务器远程连接工具:Xshell 5
方式一、以jar文件运行
添加maven依赖
Spring Boot 默认以jar包方式运行,
文章图片
可以在Maven配置如下插件,将Spring Boot 导出成可执行的jar文件。
org.springframework.boot spring-boot-maven-plugin
将项目打包
在工程目录下的运行命令行中运行mvn package:
>mvn package
*推荐使用IDE中图形化界面的操作
文章图片
(图中操作是跳过测试打包)
package会将Maven工程打包成一个可执行的jar文件存放在target目录下,在控制台中看到有如下输出则表示输出成功:
文章图片
将jar文件放到服务器 打包好的jar文件已存放在target目录下
文章图片
将jar文件放到服务器合适的目录下
文章图片
(本文使用直接鼠标拖拉的方式,也可根据需要使用rz命令、FileZilla工具等方式)
在服务器运行jar文件 切换到jar文件所在目录,执行命令(前提是已在服务器装好jdk)
java -jar yourProjectName.jar
文章图片
浏览器访问
【部署springboot项目到云服务器的两种方式(jar+war)】在浏览器输入地址访问
文章图片
注意和在本地电脑运行相比,只需将ip地址换成服务器的即可,端口号和路径名都是跟在本地电脑运行时一样的,即与yml配置文件一致
文章图片
至此,项目部署完成
2、以war方式部署 Spring Boot 默认自带了一个嵌入式的Tomcat服务器,可以以jar方式运行,更为常见的情况是需要将Spring Boot 应用打成一个war包,部署到Tomcat等服务器上。
修改打包方式
这种情况下,需要将pom中的packaging改成war方式:
文章图片
移除嵌入式tomcat插件
这里提供2种方式(本文项目使用方式2)
方式1、需要将嵌入的Tomcat依赖方式改成provided(编译、测试时将依赖的包加入本工程的classpath,运行时不加入,可以理解成运行时不使用Spring Boot 自带的Tomcat)
org.springframework.boot spring-boot-starter-tomcatprovided
方式2、在pom.xml里找到
spring-boot-starter-web
依赖节点,在其中添加如下代码,org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-tomcat
添加servlet-api的依赖
javax.servlet javax.servlet-api3.1.0 provided
修改启动类,并重写初始化方法
文章图片
打包 操作步骤与jar方式的打包一致,打包完成后会在target目录下生成.war文件
部署 将war文件放到Tomcat的webapps目录下,启动Tomcat(在bin目录下执行./startup.sh),即可自动解压部署
浏览器访问 访问地址为:
http://服务器ip:服务器里Tomcat配置的端口/项目名/接口路径
*注意:项目名以Tomcat的webapps目录下解压后的文件夹名字为准
文章图片
由于不使用Spring Boot 自带的Tomcat所以yml文件下的server配置不起作用
文章图片
到此,项目部署完成
总结 1、jar包部署方式使用Spring Boot 自带的Tomcat,因为Spring Boot 应用自带Tomcat,所以可直接在服务器运行jar文件
2、war包部署方式则使用云服务器里的Tomcat,此时需要移除Spring Boot 自带的Tomcat插件
3、注意2种部署方式的访问路径差异
4、注意所用端口号是否已在安全组开放
到此这篇关于部署springboot项目到云服务器的两种方式(jar+war)的文章就介绍到这了,更多相关springboot部署到云服务器 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- Beego打包部署到Linux
- 私有化轻量级持续集成部署方案--03-部署web服务(下)
- 17|17 关山松 第二课作业#公众号项目# D20
- RxJava|RxJava 在Android项目中的使用(一)
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- 靠QQ月入上万灰色暴利偏门的项目
- spring|spring boot项目启动websocket