部署springboot項目到雲服務器的兩種方式(jar+war)
springboot版本:2.0.3.RELEASE
雲服務器:阿裡雲ECS CentOS 7.3 64位
IDE:IntelliJ IDEA
服務器遠程連接工具:Xshell 5
方式一、以jar文件運行
添加maven依賴
Spring Boot 默認以jar包方式運行,
可以在Maven配置如下插件,將Spring Boot 導出成可執行的jar文件。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
將項目打包
在工程目錄下的運行命令行中運行mvn package:
>mvn package
*推薦使用IDE中圖形化界面的操作
(圖中操作是跳過測試打包)
package會將Maven工程打包成一個可執行的jar文件存放在target目錄下,在控制臺中看到有如下輸出則表示輸出成功:
將jar文件放到服務器
打包好的jar文件已存放在target目錄下
將jar文件放到服務器合適的目錄下
(本文使用直接鼠標拖拉的方式,也可根據需要使用rz命令、FileZilla工具等方式)
在服務器運行jar文件
切換到jar文件所在目錄,執行命令(前提是已在服務器裝好jdk)
java -jar yourProjectName.jar
瀏覽器訪問
在瀏覽器輸入地址訪問
註意和在本地電腦運行相比,隻需將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)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
方式2、在pom.xml裡找到spring-boot-starter-web
依賴節點,在其中添加如下代碼,
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 移除嵌入式tomcat插件 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
添加servlet-api的依賴
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
修改啟動類,並重寫初始化方法
打包
操作步驟與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部署到雲服務器 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- springboot項目如何打war包流程的方法
- SpringBoot如何切換成其它的嵌入式Servlet容器(Jetty和Undertow)
- 如何將SpringBoot項目打成 war 包並部署到Tomcat
- SpringBoot的依賴管理配置
- 詳解如何更改SpringBoot TomCat運行方式