前提: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:javamarket>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:javamarket>marketService.exe install 2018-12-12 17:52:44,795 INFO - Installing the service with id 'market-serverService'
启动服务:
D:javamarket>marketService.exe start 2018-12-12 17:53:20,052 INFO - Starting the service with id 'market-serverService'
关闭服务:
D:javamarket>marketService.exe stop 2018-12-12 17:52:24,278 INFO - Stopping the service with id 'market-serverService'
卸载服务:
D:javamarket>marketService.exe uninstall 2018-12-12 17:52:36,735 INFO - Uninstalling the service with id 'market-serverService'
重启服务:
D:javamarket>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 . argetmarket-server-1.0-SNAPSHOT.jar d:javamarket cd D:javamarket market-server-1.0-SNAPSHOTService.exe restart