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文件中加入插件配置
<build>
<plugins> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<!-- Apache Maven编译器插件 -->
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<!-- 必须添加compilerArgument配置,才能使用JFinal的Controller方法带参数的功能 -->
<compilerArgument>-parameters</compilerArgument>
</configuration>
</plugin> <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>1.10</version>
<configuration>
<!-- 文件生成的根目录 -->
<assembleDirectory>${project.build.directory}/app</assembleDirectory>
<!-- 打包的jar,以及maven依赖的jar放到这个目录里面 -->
<repositoryName>lib</repositoryName>
<!-- 可执行脚本的目录 -->
<binFolder>bin</binFolder>
<!-- 配置文件的目标目录 -->
<configurationDirectory>webRoot</configurationDirectory>
<!-- 拷贝配置文件到上面的目录中 -->
<copyConfigurationDirectory>true</copyConfigurationDirectory>
<!-- 从哪里拷贝配置文件 (默认src/main/config) -->
<configurationSourceDirectory>src/main/resources</configurationSourceDirectory>
<!-- lib目录中jar的存放规则,默认是${groupId}/${artifactId}的目录格式,flat表示直接把jar放到lib目录 -->
<repositoryLayout>flat</repositoryLayout>
<encoding>UTF-8</encoding>
<logsDirectory>logs</logsDirectory>
<tempDirectory>tmp</tempDirectory> <programs>
<!-- 程序打包:mvn package appassembler:assemble -->
<program>
<!-- 生成的脚本文件的名称,比如start.sh,你也可以根据你的需要命名成其他名字 -->
<id>jboot</id>
<mainClass>io.jboot.Jboot</mainClass>
<!-- 生成linux, windows两种平台的执行脚本 -->
<platforms>
<platform>windows</platform>
<platform>unix</platform>
</platforms>
</program>
</programs> </configuration>
</plugin> </plugins>
</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>下继续添加如下内容
<daemons>
<!-- 后台程序打包:mvn clean package appassembler:generate-daemons -->
<daemon>
<id>jboot</id>
<mainClass>io.jboot.Jboot</mainClass>
<platforms>
<platform>jsw</platform>
</platforms>
<generatorConfigurations>
<generatorConfiguration>
<generator>jsw</generator>
<includes>
<include>linux-x86-32</include>
<include>linux-x86-64</include>
<include>macosx-universal-32</include>
<include>macosx-universal-64</include>
<include>windows-x86-32</include>
<include>windows-x86-64</include>
</includes>
<configuration>
<property>
<name>configuration.directory.in.classpath.first</name>
<value>webRoot</value>
</property>
<property>
<name>wrapper.ping.timeout</name>
<value>120</value>
</property>
<property>
<name>set.default.REPO_DIR</name>
<value>lib</value>
</property>
<property>
<name>wrapper.logfile</name>
<value>logs/wrapper.log</value>
</property>
</configuration>
</generatorConfiguration>
</generatorConfigurations>
</daemon>
</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插件生成启动脚本
③ 用Maven自动生成带有sh和bat启动脚本的java应用
Jboot使用appassembler-maven-plugin插件生成启动脚本的更多相关文章
- 使用appassembler插件生成启动脚本
appassemblermaven插件可以自动生成跨平台的启动脚本,省去了手工写脚本的麻烦,而且还可以生成jsw的后台运行程序.插件官网:http://www.mojohaus.org/appasse ...
- 使用appassembler-maven-plugin插件生成启动脚本
appassembler-maven-plugin可以自动生成跨平台的启动脚本,省去了手工写脚本的麻烦,而且还可以生成jsw的后台运行程序. 首先pom引入相关依赖 <build> < ...
- Maven plugin插件---appassembler-maven-plugin快速配置
使用appassembler-maven-plugin 打包自定义目录 1.Pom中添加 <plugin> <artifactId>maven-resources-plugin ...
- eclipse maven plugin 插件 安装 和 配置
离线插件 点击下载离线安装包:eclipse-maven-plugin.zip ( for eclipse helios or higher ) .解压缩到任意目录(如这里的plugins目录): ...
- Maven plugin 插件
1.maven-surefire-plugin简介: Maven在构件时执行到测试的生命周期时,会使用maven-surefire-plugin运行测试用例,背后执行的Junit或者TestNG的测试 ...
- (转)淘淘商城系列——使用maven tomcat插件启动聚合工程
http://blog.csdn.net/yerenyuan_pku/article/details/72672389 上文我们一起学习了如何使用maven tomcat插件来启动web工程,本文我们 ...
- (转)淘淘商城系列——使用maven tomcat插件启动web工程
http://blog.csdn.net/yerenyuan_pku/article/details/72672138 上文我们一起学习了怎样搭建maven工程,这篇文章我就来教大家一起学习怎样用to ...
- Maven常用插件
maven利用各种插件来管理构建项目,本文记录下工作中常用到的插件及使用方法.每个插件都会提供多个目标(goal),用于标示任务.各插件配置在pom.xml里,如下: <build> [. ...
- Spring Boot Maven Plugin(二):run目标
简介 Spring Boot Maven Plugin插件提供spring boot在maven中的支持.允许你打包可运行的jar包或war包. 插件提供了几个maven目标和Spring Boot ...
随机推荐
- SharePoint 2013 - Host-named Site Collection
1. 详细操作可参考此文章 的 Deployment and configuration for host-named site collections区域,简单来说,需要以下三行PowerShell ...
- ES6入门——正则的扩展
1.RegExp构造函数 在ES5中,RegExp构造函数的参数有两种情况.第一种情况是参数是字符串,这时第二个参数表示正则表达式的修饰符:第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表 ...
- git revert .vs. git reset .vs. git rebase
1. git rervert的工作方式是:将一个老的commit的改动完全找出来,并且在新的tip处运行反操作,最终清除老commit的改动: git revert的应用场景多在对public rep ...
- 一张图看懂CSS cascade, specific, importance, inheritance
http://www.w3.org/TR/CSS21/cascade.html#inheritance http://www.w3.org/TR/CSS21/cascade.html#cascade ...
- Linux 虚拟机虚拟网卡问题导致无法连接问题
问题描述 当 Linux 虚拟机启动时,通过串口输出或者启动日志, 观察到虚拟网卡启动或者初始化故障, 导致虚拟机无法连接. 问题分析 常见的超时报错范例如下: CentOS 复制 Bringing ...
- Hadoop Archives档案
HDFS 并不擅长存储小文件,因为每个文件最少一个 block,每个 block 的元数据都会在 NameNode 占用内存,如果存在大量的小文件,它们会吃掉NameNode 节点的大量内存. Had ...
- NS Simulation Basic
这个网站上的一系列讲解NS2的内容真的是深入浅出,看完立刻豁然开朗.所以就接连转了几篇. Scheduling Events那篇里的例子特别好,看完就懂了. http://www.mathcs.emo ...
- WCF如何使用X509证书 z
WCF如何使用X509证书 如何创建证书: makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=JiangServer -sky exchange - ...
- IIS 7 启用 gzip 静态压缩 压缩js和css文件
搞了很久,不如nginx好弄,不知道怎么修改压缩比,也不知道怎么压缩的规则是啥(管理器上没有写),不过反正出来了,一个js文件900多K变成了100多K 1.在web.config文件里面加上: &l ...
- Spring学习之-各注解的含义总结
注解配置 @ComponentScan("spittr.web"):/在加载Spring上下文时,会扫描spittr.web包查找组件 @ComponentScan注解扫描的组件有 ...