Launcher通用启动器

launcher是一个Java应用通用启动器,它不仅规范了应用的打包结构并且提供了众多可选的启动参数

Posted by guanyang on 2022-06-08
Words 669 and Reading Time 2 Minutes
Viewed Times

概览

  • launcher是一个Java应用通用启动器,它不仅规范了应用的打包结构并且提供了众多可选的启动参数。
  • 用户可以通过Maven插件的方式引入launcher,通过一些简单的配置即可将Java通过launcher启动起来。

源码说明

快速接入

  • launcher的新用户如果想要快速接入项目,可以参考本工程launcher-sample模块下的pom.xml文件。

移除当前打包工具

  • 在项目pom.xml中删除已有的打包工具配置,例如:maven-assembly-pluginspring-boot-maven-plugin

添加launcher打包插件

  • 添加launcher-maven-pluginpom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<plugin>
<groupId>org.gy.framework</groupId>
<artifactId>launcher-maven-plugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>launcher</goal>
</goals>
<configuration>
<apps>
<app>
<!-- 应用名 -->
<name>${APP_NAME}</name>
<!-- 启动类 -->
<mainClass>${MAIN_CLASS}</mainClass>
</app>
</apps>
</configuration>
</execution>
</executions>
</plugin>
  • 替换配置文件中的${APP_NAME}为服务名称,例如:launcher-sample
  • 替换配置文件中的${MAIN_CLASS}启动类名称,例如:org.gy.framework.launcher.sample.Main

开始构建

  • 接入完成后,使用mvn package构建工程
  • package执行完毕后,会自动在模块中的target目录下生成${PROJECT_MODULE_NAME}-${VERSION}.tar.gz文件

启动工程

  • 解压缩${PROJECT_MODULE_NAME}-${VERSION}.tar.gz文件
  • 启动器主文件为 ./bin/launcher.sh
  • 使用 ./launcher.sh start -n ${APP_NAME} 启动
  • 使用 ./launcher.sh stop -n ${APP_NAME} 停止
  • 使用 ./launcher.sh restart -n ${APP_NAME} 重启
  • 想要查看更多选项请使用 launcher.sh -h 以及 launcher.sh [start/stop/restart/status] -h

Change Log

1.0.1-SNAPSHOT

  • 添加skywalking-agent插件支持,方便链路追踪
  • Javaagent默认下载路径dlcdn.apache.org,如果构建时下载过慢,可以在launcher-maven-plugin/pom.xml中修改${javaagent.download.url}变量
  • 增加Javaagent本地文件缓存机制,提升打包速度,缓存目录可以通过-Dlauncher.javaagent.cache.dir设置,默认为系统变量java.io.tmpdir

1.0.0-SNAPSHOT

  • 版本初始化
  • 规范应用打包结构,并且提供众多可选的启动参数,参考启动参数
  • 通过maven插件简单配置,即可快速引用,参考Maven插件配置
  • 统一应用日志路径及格式,并且提供了零配置开箱即用的特性,参考日志配置指南
  • 自动生成Dockerfile文件,方便容器化部署,参考Dockerfile扩展支持

更多


If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !

...

...

00:00
00:00