zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    SGU 176.Flow construction (有上下界的最大流)
    POJ 2391.Ombrophobic Bovines (最大流)
    poj 1087.A Plug for UNIX (最大流)
    poj 1273.PIG (最大流)
    POJ 2112.Optimal Milking (最大流)
    SGU 196.Matrix Multiplication
    SGU 195. New Year Bonus Grant
    关于multicycle path
    ppt做gif动图
    codeforces 598A Tricky Sum
  • 原文地址:https://www.cnblogs.com/GeekHying/p/9269861.html
Copyright © 2011-2022 走看看