今天有朋友問起,windows系統的服務器怎麼部署springboot,其實網上一大堆資料,不過真是良莠不齊,把好久前的Word文檔整理了一下,發出來。
一:問題
springboot可以用maven直接打包成.jar文件。打包後的文件在windows上命令直接就可以運行,很方便。
但是這樣做也有缺點:
1.運行時沒有界面,需要停止程序時不太好辦(可以從任務管理器直接結束,但是多個這樣的程序同時運行時無法從進程名稱上區分)。
2.服務器重啓之後,程序無法實現自啓動。
3.所以需求就是做成服務。
二:開整
- 下載
winsw
程序,選擇對應版本。(WinSW.NET2.exe 或 WinSW.NET4.exe) - github上現在不好找或者打不開的請點擊:鏈接:分享地址 提取碼:miwj
- 安裝
.NET Framework
。 - 將
WinSW.exe
複製到自定義的目錄,並重命名爲test.exe
- 同目錄下創建
test.xml
。特別注意,xml和exe必須同名 - 使用
test.exe install
安裝服務。 - 使用
test.exe uninstall
卸載服務。
github下載地址:https://github.com/winsw/winsw/releases
github倉庫地址:https://github.com/winsw/winsw
示例,配置springboot 啓動服務
<service>
<id>guides-server</id>
<name>guides-server</name>
<description>This is guides-server service.</description>
<!-- java環境變量 -->
<env name="JAVA_HOME" value="%JAVA_HOME%"/>
<executable>java</executable>
<arguments>-server -Xms512m -Xmx512m -Xmn128m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -jar "E:\guides-server\jar\guides-server.jar" </arguments>
<!-- 開機啓動 -->
<startmode>Automatic</startmode>
<!-- 日誌配置 -->
<logpath>%BASE%\log</logpath>
<logmode>rotate</logmode>
</service>