JoyLau / joylau-springboot-daemon-windows

将SpringBoot应用制作为Windows Services服务 | make spring boot module to windows services
http://image.joylau.cn/blog/joylau-springboot-daemon-service-video.mp4
MIT License
68 stars 38 forks source link
services spring-boot windows

一款将 SpringBoot 项目做成Windows Service 的 Maven 插件

包括但不限于 SpringBoot ,任何打成 java jar 包运行的 Maven 项目都可以使用

编写初衷

使用演示地址:

MP4 : http://image.joylau.cn/blog/joylau-springboot-daemon-service-video.mp4

1.1.RELEASE

怎么使用?

注意:

  1. 这里的 phase 写的是 package,意思是该插件在 mvn package 的时候调用,你也可以根据不同的需求来更改,比如 install, test等等
  2. goal 写 make-win-service 就可以了,不需要改动
  3. 一般情况下我们的SpringBoot项目会有其他父项目,这时打包会使用 spring-boot-maven-plugin 插件的 repackage,这样的情况的话,请将该插件放置最后面,否则服务运行的话将提示没有主属性

打包过程中,看到如下日志信息,便制作成功了: joylau-springboot-daemon-windows-package-info

此时,在你项目的target目录下会生成一个 jar 包名字 一样的压缩包 进入文件夹,解压这个压缩包,你会看见如下内容的文件 joylau-springboot-daemon-windows-package-file 注意:

  1. 5个 bat 文件,双击运行无反应时,请右键以管理员的身份运行
  2. 各文件的文件名无特殊情况,不需要修改
  3. 一旦安装成了 Windows 服务,目录下的文件就不要移动了
  4. 命令运行时,可能会提示安装.NET,安装完成就可运行命令了,不过现在大部分的 Windows 服务器或者个人电脑都会默认安装了.NET,没有的话启用一下就好了,如下图: joylau-springboot-daemon-windows-.NET
  5. 运行各个命令是注意提示信息,例如卸载完服务都的状态为NonExistent,刚安装完服务后的状态为Stopped,服务成功启动的状态为Started...等等 joylau-springboot-daemon-windows-service-status

扩展参数

想要在服务启动时添加自定义参数,如 SpringBoot 的配置参数或者 JMV 参数? 像如下配置即可:

    <plugin>
        <groupId>cn.joylau.code</groupId>
        <artifactId>joylau-springboot-daemon-windows</artifactId>
        <version>1.1.RELEASE</version>
        <executions>
            <execution>
                <id>make-win-service</id>
                <phase>package</phase>
                <goals>
                    <goal>make-win-service</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <vmOptions>-Xms1024m -Xmx2048m</vmOptions>
            <programArguments>--server.port=9090</programArguments>
        </configuration>
    </plugin>

上面配置了JVM 参数 和 Spring Boot 应用的启动端口

使用注意