在正常能打包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