# maven-plugin-starter **Repository Path**: yoqu/maven-plugin-starter ## Basic Information - **Project Name**: maven-plugin-starter - **Description**: spring boot appliaciton running script. - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 0 - **Created**: 2019-10-18 - **Last Updated**: 2022-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Maven Plugin Stater

A spring boot applicaiton quick running script.

# 为什么做这款工具 > 随着spring boot的快速发展,现在一个服务的的部署方式越来越简单,轻松,特别是微服务的兴起,docker容器化。使得spring boot的jar优势越来越大仅需使用`java -jar xxx.jar`即可启动。 但同时,对于传统企业和公司,未引入docker容器化的部署方案,又想使用jar包独立启动会遇到以下几个问题 1. 对于需要自定义jvm参数或者后台挂起等需求需要手动写脚本(每次控制台写太累了) 2. jar内的配置文件修改异常麻烦(有时需要运维做维护配置,假设你的配置有问题,还需要重新打包,遇到龟速网络拷包太浪费时间了) 3. 一台服务器有多个微服务运行,不知道某个进程是什么服务(通过端口检查也知道,不过这好像有点麻烦)。 综上,这款小工具通过预置项目启动、停止、重启脚本。用户在编译后生成的部署包运维只需两行命令即可运行。1: `unzip xxx.war` 2:`sh xxx/bin/start.sh`。 **注**:war包使用tomcat部署不在本次讨论范围内。 项目编译后的目录结构: ``` ├── META-INF ├── WEB-INF │   ├── classes │   └── lib └── bin ├── restart.sh ├── start.sh └── stop.sh ``` # 特性 - 自动在打包过程中生成启动脚本 - 无入侵,用户在代码中无感知 - 支持jvm参数自定义配置 - 支持个性化启动类查找 - 支持remote debug,jmx - jps命令可显示服务名称*(妈妈再也不用担心我的进程是什么服务啦)* # 快速集成 1. 在pom文件中设置打包方式为war ```xml war ``` 2. 设置pom.xml文件的plugins下引入以下配置 ```xml com.uyoqu.framework maven-plugin-starter 1.0.0 package bin ``` 插件本身是支持配置,可指定启动主函数以及jvm参数,对于Spring boot支持自动查询MainClass,无需用户手动填写。 配置示例: ```xml com.uyoqu.framework maven-plugin-starter 1.0.0 package bin -server -Xmx512m com.xxx.xxx App ``` **注**: - jvms中配置jvm参数,如果用户不进行该项配置则bin脚本中就会填充默认参数 - mainClass中可直接填入启动类全限定名来进行参数配置 - 若mainClass不进行配置,则会启动启动类自动查找功能 - 可通过matchClass参数对查找匹配规则进行配置 - 若mainClass不进行配置则默认查找拥有@SpringBootApplication注解的类 - 若配置mainClass,则会进行包含匹配 - 比如:matchClass配置为App,则类名为App,Application,父类名为App,Application的类都会被匹配成功 - 启动类只能有一个,若匹配到多个则会报错