springboot 在maven项目下,jar包注册window服务
在正常能打包jar的项目下,对pom文件进行修改,代码如下
一、基础配置
<modelVersion>4.0.0</modelVersion>
<groupId>FaceDeviceCenter</groupId>
<artifactId>FaceDeviceCenter</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>FaceDeviceCenter Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<start-class>com.aratek.gateServer.Application</start-class>
<fileName>FaceDeviceCenter</fileName>
<version>0.0.1-SNAPSHOT</version>
</properties>
二、配置打包插件
<plugins>
<!-- maven编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default-compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<!--设置jdk编译本版-->
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</execution>
</executions>
</plugin>
<!-- jar打包插件, 设定jar包名称不带版本号 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<!--设置打包出来的jar包名称,这个非常重要,在window 注册服务脚本中,这个是固定的,格式是”文件名-本版号“ -->
<jarName>${fileName}-${version}</jarName>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- jar 打包注册window 插件 -->
<plugin>
<groupId>cn.joylau.code</groupId>
<artifactId>joylau-springboot-daemon-windows</artifactId>
<version>1.0.RELEASE</version>
<executions>
<execution>
<id>make-win-service</id>
<phase>package</phase>
<goals>
<goal>make-win-service</goal>
</goals>
</execution>
</executions>
<configuration>
<!--这块是打包出来的脚本文件,根据实际情况自己配置-->
<arguments>
<vmOptions>-Xms1024m -Xmx2048m</vmOptions>
<!--配置springboot启动端口-->
<argument>--server.port=8083</argument>
<!--配置jar启动的属性-->
<programArguments> -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=2048m</programArguments>
</arguments>
</configuration>
</plugin>
</plugins>
打包过程中,看到如下日志信息,便制作成功了:

三、文件目录如下

注:FaceDeviceCenter-0.0.1-SNAPSHOT.zip就是我们打包出来需要的文件了
解压出来,文件如下:

intsall.bat :安装服务
restart.bat:重启服务
start.bat:启动服务
stop.bat:停止服务
unintall.bat:卸载服务
观察下FaceDeviceCenter-0.0.1-SNAPSHOT.xml里面的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<service>
<id>FaceDeviceCenter</id>
<name>FaceDeviceCenter-0.0.1-SNAPSHOT</name>
<description>Spring Boot Starter Parent</description>
<workingdirectory>%BASE%\</workingdirectory>
<logpath>%BASE%\logs</logpath>
<logmode>rotate</logmode>
<executable>java</executable>
<arguments>-jar FaceDeviceCenter-0.0.1-SNAPSHOT.jar -Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=2048m</arguments>
</service>
很清晰的能看到我们在pom文件配置的插件属性是生效的
一款将 SpringBoot 项目做成Windows Service 的 Maven 插件
注意:
1. 5个 bat 文件,请右键以管理员的身份运行
2. 各文件的文件名无特殊情况,不需要修改
3. 一旦安装成了 Windows 服务,目录下的文件就不要移动了
4. 命令运行时,可能会提示安装.NET,安装完成就可运行命令了,不过现在大部分的 Windows 服务器或者个人电脑都会默认安装了.NET,没有的话启用一下就好了
5. 运行各个命令是注意提示信息,例如卸载完服务都的状态为NonExistent,刚安装完服务后的状态为Stopped,服务成功启动的状态为Started...等等
更为详细使用说明见 : https://github.com/JoyLau/joylau-springboot-daemon-windows
做个快乐的删库程序员,随时准备跑路^_^

浙公网安备 33010602011771号