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

做个快乐的删库程序员,随时准备跑路^_^
原文地址:https://www.cnblogs.com/zcsheng/p/12892885.html