前提:jenkins和springboot運行在同一台機器
springboot 通過winsw部署為服務
winsw 下載地址:https://github.com/kohsuke/winsw/releases
winsw的使用比較簡單,下載上面兩個文件,和springboot項目jar包一個文件夾下。
將exe和xml修改成同樣的名字
xml文件內容如下:
<configuration> <!-- ID of the service. It should be unique accross the Windows system--> <id>market-serverService</id> <!-- Display name of the service --> <name>market-serverService</name> <!-- Service description --> <description>貸款超市jar</description> <!-- Path to the executable, which should be started --> <executable>java</executable> <!--Xmx256m 代表堆內存最大值為256MB -jar后面的是項目名--> <arguments>-Xmx256m -jar market-server-1.0-SNAPSHOT.jar</arguments> <!--日志模式--> <logmode>rotate</logmode> </configuration>
打開命令行,注意需要管理員身份打開,否則會執行會報錯
D:\java\market>marketService.exe stop 2018-12-12 17:51:17,583 INFO - Stopping the service with id 'market-serverService' 2018-12-12 17:51:17,611 FATAL - WMI Operation failure: AccessDenied WMI.WmiException: AccessDenied 在 WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result) 在 WMI.WmiRoot.InstanceHandler.Invoke(Object proxy, MethodInfo method, Object[] args) 在 winsw.WrapperService.Run(String[] _args, ServiceDescriptor descriptor) 在 winsw.WrapperService.Main(String[] args) WMI.WmiException: AccessDenied 在 WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result) 在 WMI.WmiRoot.InstanceHandler.Invoke(Object proxy, MethodInfo method, Object[] args) 在 winsw.WrapperService.Run(String[] _args, ServiceDescriptor descriptor) 在 winsw.WrapperService.Main(String[] args)
注冊服務:
D:\java\market>marketService.exe install 2018-12-12 17:52:44,795 INFO - Installing the service with id 'market-serverService'
啟動服務:
D:\java\market>marketService.exe start 2018-12-12 17:53:20,052 INFO - Starting the service with id 'market-serverService'
關閉服務:
D:\java\market>marketService.exe stop 2018-12-12 17:52:24,278 INFO - Stopping the service with id 'market-serverService'
卸載服務:
D:\java\market>marketService.exe uninstall 2018-12-12 17:52:36,735 INFO - Uninstalling the service with id 'market-serverService'
重啟服務:
D:\java\market>marketService.exe restart 2018-12-12 17:54:25,880 INFO - Restarting the service with id 'market-serverService'
jenkins配置參考之前記錄
新建一個maven項目,主要配置如下:
構建主要邏輯是:
1.git拉取代碼到本地
2.maven編譯打包
3.復制springboot項目jar包到winsw的目錄下覆蓋,重啟服務
批處理命令:
copy /y .\target\market-server-1.0-SNAPSHOT.jar d:\java\market\ cd D:\java\market market-server-1.0-SNAPSHOTService.exe restart