Jboot使用appassembler-maven-plugin插件生成启动脚本

厌伴老儒烹瓠叶,强随举子踏槐花。这篇文章主要讲述Jboot使用appassembler-maven-plugin插件生成启动脚本相关的知识,希望能为你提供帮助。
Jboot使用appassembler-maven-plugin插件生成启动脚本appassembler-maven-plugin介绍:
使用appassembler-maven-plugin插件可自动生成跨平台的启动脚本,可省去手工写脚本的麻烦,而且还可以生成jsw的后台运行程序。
插件官网:http://www.mojohaus.org/appassembler/appassembler-maven-plugin/
官网详细介绍了该插件的用法。
实战:
最近项目用到了Jboot框架,如何在Jboot框架中应用appassembler-maven-plugin插件生成启动脚本,是本文要写的。
1 生成可执行启动脚本
1.1 直接在pom.xml文件中加入插件配置

1 < build> 2< plugins> 3 4< plugin> 5< groupId> org.apache.maven.plugins< /groupId> 6< !-- Apache Maven编译器插件 --> 7< artifactId> maven-compiler-plugin< /artifactId> 8< configuration> 9< source> 1.8< /source> 10< target> 1.8< /target> 11< encoding> UTF-8< /encoding> 12< !-- 必须添加compilerArgument配置,才能使用JFinal的Controller方法带参数的功能 --> 13< compilerArgument> -parameters< /compilerArgument> 14< /configuration> 15< /plugin> 16 17< plugin> 18< groupId> org.codehaus.mojo< /groupId> 19< artifactId> appassembler-maven-plugin< /artifactId> 20< version> 1.10< /version> 21< configuration> 22< !-- 文件生成的根目录 --> 23< assembleDirectory> ${project.build.directory}/app< /assembleDirectory> 24< !-- 打包的jar,以及maven依赖的jar放到这个目录里面 --> 25< repositoryName> lib< /repositoryName> 26< !-- 可执行脚本的目录 --> 27< binFolder> bin< /binFolder> 28< !-- 配置文件的目标目录 --> 29< configurationDirectory> webRoot< /configurationDirectory> 30< !-- 拷贝配置文件到上面的目录中 --> 31< copyConfigurationDirectory> true< /copyConfigurationDirectory> 32< !-- 从哪里拷贝配置文件 (默认src/main/config) --> 33< configurationSourceDirectory> src/main/resources< /configurationSourceDirectory> 34< !-- lib目录中jar的存放规则,默认是${groupId}/${artifactId}的目录格式,flat表示直接把jar放到lib目录 --> 35< repositoryLayout> flat< /repositoryLayout> 36< encoding> UTF-8< /encoding> 37< logsDirectory> logs< /logsDirectory> 38< tempDirectory> tmp< /tempDirectory> 39 40< programs> 41< !-- 程序打包:mvn package appassembler:assemble --> 42< program> 43< !-- 生成的脚本文件的名称,比如start.sh,你也可以根据你的需要命名成其他名字 --> 44< id> jboot< /id> 45< mainClass> io.jboot.Jboot< /mainClass> 46< !-- 生成linux, windows两种平台的执行脚本 --> 47< platforms> 48< platform> windows< /platform> 49< platform> unix< /platform> 50< /platforms> 51< /program> 52< /programs> 53 54< /configuration> 55< /plugin> 56 57< /plugins> 58 < /build>

  1.2 在终端中执行:mvn package appassembler:assemble
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

程序打包完成
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

在项目的target--> app--> bin文件下可找到新生成脚本文件,无文件后缀的是linux可执行的脚本文件,jboot.bat为windows下可执行脚本文件。
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

1.3 可执行脚本测试
1.3.1 linux下测试
将 target 整个文件拷贝到 linux 文件目录下
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

通过终端进入app/bin目录下,并赋予 jboot 文件可执行权限,然后执行 ./jboot 命令,可以看到项目启动成功。
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

在浏览器中访问:http://192.168.154.216:8080/ 可以看到项目访问正常。
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

2 生成后台服务程序
2.1 在生成可执行启动脚本pom.xml文件的< configuration> 下继续添加如下内容
1 < daemons> 2< !-- 后台程序打包:mvn clean package appassembler:generate-daemons --> 3< daemon> 4< id> jboot< /id> 5< mainClass> io.jboot.Jboot< /mainClass> 6< platforms> 7< platform> jsw< /platform> 8< /platforms> 9< generatorConfigurations> 10< generatorConfiguration> 11< generator> jsw< /generator> 12< includes> 13< include> linux-x86-32< /include> 14< include> linux-x86-64< /include> 15< include> macosx-universal-32< /include> 16< include> macosx-universal-64< /include> 17< include> windows-x86-32< /include> 18< include> windows-x86-64< /include> 19< /includes> 20< configuration> 21< property> 22< name> configuration.directory.in.classpath.first< /name> 23< value> webRoot< /value> 24< /property> 25< property> 26< name> wrapper.ping.timeout< /name> 27< value> 120< /value> 28< /property> 29< property> 30< name> set.default.REPO_DIR< /name> 31< value> lib< /value> 32< /property> 33< property> 34< name> wrapper.logfile< /name> 35< value> logs/wrapper.log< /value> 36< /property> 37< /configuration> 38< /generatorConfiguration> 39< /generatorConfigurations> 40< /daemon> 41 < /daemons>

2.2 在终端中执行:mvn clean package appassembler:generate-daemons 稍后即打包完成。
在项目的target--> generated-resources--> appassembler--> jsw--> jboot--> bin文件下可找到新生成的脚本文件,无后缀jboot文件的是linux可执行的脚本文件,jboot.bat为windows下可执行脚本文件。
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

2.3 后台服务程序脚本测试
2.3.1 windows下测试
以管理员身份进入DOS操作界面,进入脚本文件所在目录,执行jboot.bat命令,展示出脚本用法列表
Usage: jboot.bat { console : start : pause : resume : stop : restart : install : remove : status }
执行 jboot.bat start 启动项目
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

在浏览器中输入:http://localhost:8080/ 可以看到项目启动成功,也可以操作 jboot.bat status 查看运行状态、jboot.bat stop 停止项目运行
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

2.3.2 linux下测试
同样将 target 整个文件拷贝到 linux 文件目录下,然后在终端进入脚本文件所在位置
赋予jboot、wrapper-linux-x86-64可执行权限,执行 ./jboot 命令可以显示脚本用法列表
接着执行 ./jboot start 启动项目,执行 ./jboot status 查看运行状态
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

在浏览器中输入:http://192.168.154.216:8080/ 可以看到项目访问成功,同样可以使用 ./jboot stop 终止项目运行
Jboot使用appassembler-maven-plugin插件生成启动脚本

文章图片

【Jboot使用appassembler-maven-plugin插件生成启动脚本】注:
1、在终端执行生成后台服务程序的命令后,会将前面生成可执行启动脚本命令生成的app文件删掉,如果还想要可执行启动脚本,在终端再执行一遍 mvn package appassembler:assemble 即可,然后将新的target文件拷贝到对应目录下,可执行启动脚本和后台服务程序脚本都会存在。
2、如果pom文件中增加了新的依赖,或者减少了依赖,则需要重新使用命令打包,否则新加入的jar包无法引入到项目的lib下,命令会把每个jar包都加入到lib下。
至此,Jboot使用appassembler-maven-plugin插件生成启动脚本的相关操作结束。
参考:
① 使用appassembler-maven-plugin插件生成启动脚本

② 使用appassembler插件生成启动脚本

③ 用Maven自动生成带有sh和bat启动脚本的java应用

④ Jboot-项目构建

    推荐阅读