• 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

    程序打包完成

    在项目的target-->app-->bin文件下可找到新生成脚本文件,无文件后缀的是linux可执行的脚本文件,jboot.bat为windows下可执行脚本文件。

    1.3 可执行脚本测试

    1.3.1 linux下测试

    将 target 整个文件拷贝到 linux 文件目录下

    通过终端进入app/bin目录下,并赋予 jboot 文件可执行权限,然后执行 ./jboot 命令,可以看到项目启动成功。

    在浏览器中访问:http://192.168.154.216:8080/ 可以看到项目访问正常。

    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下可执行脚本文件。

    2.3 后台服务程序脚本测试

    2.3.1 windows下测试

    以管理员身份进入DOS操作界面,进入脚本文件所在目录,执行jboot.bat命令,展示出脚本用法列表

    Usage: jboot.bat { console : start : pause : resume : stop : restart : install : remove : status }

    执行 jboot.bat start 启动项目

    在浏览器中输入:http://localhost:8080/ 可以看到项目启动成功,也可以操作 jboot.bat status 查看运行状态、jboot.bat stop 停止项目运行

    2.3.2 linux下测试

    同样将 target 整个文件拷贝到 linux 文件目录下,然后在终端进入脚本文件所在位置

    赋予jboot、wrapper-linux-x86-64可执行权限,执行 ./jboot 命令可以显示脚本用法列表

    接着执行 ./jboot start 启动项目,执行 ./jboot status 查看运行状态

    在浏览器中输入:http://192.168.154.216:8080/ 可以看到项目访问成功,同样可以使用 ./jboot stop 终止项目运行

    注:

    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-项目构建

    The way of code
  • 相关阅读:
    JSON 串 自定义解析字段
    JspWriter与PrintWriter的关系
    Map 根据value 排序
    Log4j NDC MDC
    stray '/241' in program 错误
    【Qt开发】修改源码文件的编码格式的小技巧 .
    Tomcat 虚拟目录映射
    《疯狂Java讲义精粹》读书笔记4 基本包装类
    《疯狂Java讲义精粹》读书笔记8 不可变类
    《疯狂Java讲义精粹》读书笔记9 接口
  • 原文地址:https://www.cnblogs.com/GeekHying/p/9269861.html
Copyright © 2020-2023  润新知