部署以前先說下兩種包,java項目部署到服務器通常有用war包的,也有用jar包的,微服務spring-cloud普及後大部分打包都是jar,部署以前先搞清楚本身要打war包仍是jar包,下面小介紹兩種包的區別: spring boot既能夠打成war發佈,也能夠找成jar包發佈。說一下區別:java
jar包:直接經過內置tomcat運行,不須要額外安裝tomcat。如需修改內置tomcat的配置,只須要在spring boot的配置文件中配置。內置tomcat沒有本身的日誌輸出,全靠jar包應用輸出日誌。可是比較方便,快速,比較簡單。mysql
war包:傳統的應用交付方式,須要安裝tomcat,而後放到waeapps目錄下運行war包,能夠靈活選擇tomcat版本,能夠直接修改tomcat的配置,有本身的tomcat日誌輸出,能夠靈活配置安全策略。相對打成jar包來講沒那麼快速方便。web
我的比較偏向打成jar包的方式發佈應用,由於spring boot已經內置了tomcat,無需額外配置。其實能夠搜索下spring boot的特色,有個很是重要的特性就是spring boot把市面優秀的開源技術,都集合起來,方便快速應用。技術沒有百分百這種好,也沒有百分百那種很差,存在即合理,最主要仍是看我的習慣和業務場景需求了。redis
先說下jar包怎麼部署啓動項目,這裏的jar包前提是springboot項目打的,pom文件已經設置過了入口文件等相應設置,具體設置這裏就不說了。spring
1.安裝 xshell 、xftp軟件 Xshell功能簡介 Xshell [1] 是一個強大的安全終端模擬軟件,它支持SSH1, SSH2, 以及Microsoft Windows 平臺的TELNET 協議。Xshell 經過互聯網到遠程主機的安全鏈接以及它創新性的設計和特點幫助用戶在複雜的網絡環境中享受他們的工做。 Xshell能夠在Windows界面下用來訪問遠端不一樣系統下的服務器,從而比較好的達到遠程控制終端的目的。除此以外,其還有豐富的外觀配色方案以及樣式選擇。 Xftp 功能簡介 是一個基於 MS windows 平臺的功能強大的SFTP、FTP 文件傳輸軟件。使用了 Xftp 之後,MS windows 用戶能安全地在 UNIX/Linux 和 Windows PC 之間傳輸文件。Xftp 能同時適應初級用戶和高級用戶的須要。它採用了標準的 Windows 風格的嚮導,它簡單的界面能與其餘 Windows 應用程序緊密地協同工做,此外它還爲高級用戶提供了衆多強勁的功能特性。 2.經過安裝以上兩個軟件能夠實現window電腦遠程控制Linux服務器,這樣就能夠將咱們打包好的jar文件傳輸到Linux服務器上進行項目的部署。sql
假設Linux服務上已經有了打好的jar包,下面介紹幾種經常使用的部署方式:docker
一、java -jar啓動方式。shell
java -jar *.jar
複製代碼
此中方式只會運行在當前窗口,當關閉窗口或斷開鏈接,jar程序就會結束。windows
二、nohup啓動方式。(推薦)瀏覽器
# nohub: 不掛斷的運行命令
# &:後臺運行
# >: 日誌重定向輸出到
nohub java -jar *.jar >jarLog.txt &
複製代碼
三、註冊爲Linux服務(推薦)
<!--這樣配置後,經過maven打出來的jar 能夠直接 執行 ./aabb.jar 就能運行起來。 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
</plugins>
</build>
複製代碼
將打好的jar包放到Linux任意目錄 eg: /var/project/
sudo ln -s /var/project/demo.jar /etc/init.d/abc
(其中demo爲jar包名稱,abc爲服務名稱)
複製代碼
以後就能夠用 service XXX start 命令來啓動jar包
啓動/關閉 服務 service abc start/stop 查看狀態 service abc status 設置開機自啓 chkconfig abc on
四、systemctl啓動方式。
[Unit]
Description=abc.service
Requires=mysql.service mongod.service redis.service
Wants=abc.service
After=syslog.target network.target mysql.service mongod.service redis.service abc.service
[Service]
User=manager
Group=manager
EnvironmentFile=/home/.bash_profile
WorkingDirectory=/home/tomcat
ExecStart=/usr/bin/java -Xms512m -Xmx512m -jar /home/你的項目名.jar --spring.profiles.active=test
[Install]
WantedBy=multi-user.target
複製代碼
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
LOG_PATH=/home/logs
export LOG_PATH
export PATH
複製代碼
其中上述中的LOG_PATH能夠在項目中引用,例如:
直接將*.jar文件拷貝到tomcat\webapps\目錄下,啓動tomcat,訪問localhost:8080/jar包名便可。 注意:啓動tomcat的時候優先用服務方式啓動tomcat以下: nohup ./startup.sh &
(&能夠用於後臺運行)
注意:用tomcat啓動jar須要注意的是打包的時候須要把包裏面tomcat排除掉:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
複製代碼
六、基於docker雲部署。 www.jianshu.com/p/ec477d84f…
最後補充一些常規命令:
在Linux項目上對項目進行操做的命令符以下: 後臺暫時運行:java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar(後臺暫時運行) 後臺永久運行,想要中止需殺死後臺進程:nohup java -jar /root/yyxx/cloud-yyxx-web-1.0-exec.jar &() 查看jar進程:ps aux|grep cloud-yyxx-web-1.0-exec.jar 殺掉進程: kill -9 進程號
最簡單,常見的部署方法,直接將war包放到tomcat的wabapp目錄下,運行tomcat就行。 具體步驟以下: a. 把項目打包到wabapp目錄下。以下圖