1.環境準備
? ? ? ? 1.1 這些就不過多描述了,可以參考我的另一盤文章部署到linux。
????????jenkins 發布服務到linux服務器-CSDN博客
? ? ? ? 1.2 需要再windows上安裝openssh
? ? ? ? 地址:Releases · PowerShell/Win32-OpenSSH · GitHub
? ? ? ? 到windows上執行安裝,可以里面cmd命令行,執行 services.msi查看服務是否安裝成功。
????????
? ? ? ? 1.3 只有安裝了openssh才能在jenkins中的系統配置里面創建關于windows服務器的publish over ssh,具體的可以參考我的另一篇文章,和創建linux服務器的一模一樣。唯一要注意的就是在配置remote directory 時,我配置的時d盤根目錄,然后一定是我下面截圖的這種情況,反斜杠別寫成windows的形式的,要不連不上windows,當然你可以不配置到d盤的根目錄,可以繼續加。
2.jenkins配置
? ? ? ? 這里一些通用的配置就不說了,思想和部署linux的一樣,先關閉服務,打包,發包,啟動服務,所以這里直接貼幾個windows的批處理腳本,主要是關于啟動,停止的。
? ? ? ? 2.1 關閉服務腳本 stop.bat
????????
@echo off
set port=5861
for /f "tokens=1-5" %%i in ('netstat -ano^|findstr ":%port%"') do (echo kill the process %%m who use the port taskkill /pid %%m -t -fgoto start
)
:start
? ? ? ? 2.2 啟動服務腳本 start.bat? ? ? ??
?
java -Dspring.profiles.active=prod -jar D:\zxh\nmtakewater\nmtakewatermain-0.0.1-SNAPSHOT.jar > D:\zxh\nmtakewater\main.log
? ? ? ? 2.3 前端解壓腳本 front-zip.bat,前提要安裝了winrar軟件,利用這個軟件解壓前端的壓縮包。
? ? ? ? 這里稍微說一下,這個腳本里面包含了解壓包,刪除包,重命名,這些是我自己的實際情況,你可以根據自己的要求配置,當然不在我這里的腳本你就得自己找了,反正就那幾個意思。? ? ? ? ?
@echo off
set WinRAR="C:\Program Files (x86)\WinRAR\WinRAR.exe"
set log_name="\log.txt"
set log=%cd%%log_name%
for /r . %%a in (*.rar *.zip *.Z *.gz) do ( cd "%%~pa" rem auto replace files that existsrem x : extractrem -o+ : cover moderem -ilog : error msg to filerem -inul : do not display error windowrem -iback : run in the backgroundrem -mt : thread num%WinRAR% x -o+ -ilog%log% -inul -iback -mt12 "%%a"rem last command run successfullyif %errorlevel% == 0 (rem delete compress file)
)
cd D:\jiachao\web
rmdir /s /q waterIntake
ren dist waterIntake
3.打包之后在windows上執行啟動腳本不起作用的問題
? ? ? ? 這個重點說下,我不知道具體的原因哈,但是現狀就是在打包之后,將包傳到windows上后,執行后續的啟動、解壓等命令不起作用。換衣是jenkins兼容windows這塊做的不好。
? ? ? ? 解決方案:
? ? ? ? 點擊控制面板-》管理工具-》任務計劃程序-》創建任務-》填寫名稱-》選擇批處理腳本
????????
創建完成之后,在jenkins里面的exec command 配置執行,這樣就可以在打包之后,執行相關命令了。
schtasks /run /tn "任務名稱"
4.關于windows路徑中的反斜杠問題。
? ? ? ? 在jenkins里面執行的腳本涉及路徑時,一定要注意這個和linux一樣的是 “/” 不是"\"。
????????