JSW Java_使用JSW包装你得Maven应用

什么是JSW

JSW主要用于包装其他java服务器端程序(比如tomcat,或者自己开发的java服务器程序),提供如下特性:

作为windows服务或者unix守护进程运行

增强程序的可靠性,程序崩溃后的自动重启,比如内存溢出,虚拟机崩溃等造成JVM退出的监控和恢复运行(重新启动)

标准的,可独立使用的配置JVM参数的脚本

支持java应用程序重启JVM,比如应用程序修改了配置文件,或者重启系统避免内存溢出等问题

灵活的配置

简化应用程序的安装

记录日志

在Maven中使用JSW

现在Maven是Java世界的主流构建工具,把JSW融入Maven的生命周期中就变能在不改变当前构建流程的情况下获得JSW提供的好处。Maven提供了appassembler插件对这一目标提供支持,首先在Pom中引入appassembler插件:

org.codehaus.mojo

appassembler-maven-plugin

1.10

conf

src/main/resources

true

true

true

flat

lib

.sh

com.freetmp.investigate.springboot.Application

jsw

linux-x86-32

linux-x86-64

windows-x86-32

windows-x86-64

macosx-universal-32

macosx-universal-64

configuration.directory.in.classpath.first

conf

wrapper.logfile

logs/location-web.log

wrapper.logfile.format

M

wrapper.logfile.maxsize

10m

wrapper.logfile.maxfiles

5

jsw

investigate-spring-boot

build-deploy-dir

package

generate-daemons

将appassembler的generate-daemons目标绑定到maven的package构建阶段,通过appassembler插件的deamons属性配置来描述对JSW的定制,包括日志,类路径,包装平台等;maven构建后会生成如下结构:

1f6b7a1b3f9da27eaa88d9c285e2049b.png

其中lib下放置的是程序运行所有的依赖,conf下是程序的配置文件(日志,jsw等),bin下是jsw的可执行脚本:

a4cb829cc8fe6529cf77596df6979ed4.png

在Windows平台下的命令格式如下:

c32a823e3a5ca7f5bc82a824934360ec.png

在命令行下启动程序:

fe0645ea169d8e59b722e12eddb3df3f.png

使用maven构建分发包

appassembler插件生成的只是包含运行以来及配置的目录结构,而构建的分法包是一个压缩后的文进,无论是在linux还是Windows下对一个目录进行压缩都是很容易的事,但是既然使用了maven,那我们就可以把这一过程也加入到maven的构建流程中:

org.apache.maven.plugins

maven-assembly-plugin

2.5.4

package

single

src/main/resources/assembly.xml

使用assembly插件对jsw的部署目录进行压缩打包:

xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2

http://maven.apache.org/xsd/assembly-1.1.2.xsd">

bin

tar.gz

target/generated-resources/appassembler/jsw/investigate-spring-boot/lib

lib

maven-metadata-appassembler.xml

target/generated-resources/appassembler/jsw/investigate-spring-boot/conf

conf

application-online.properties

application.properties

ehcache-shiro.xml

wrapper.conf

target/generated-resources/appassembler/jsw/investigate-spring-boot/bin

bin

0755

keep

src/main/resources

bin

service_manage.sh

0755

keep

target/generated-resources/appassembler/jsw/investigate-spring-boot/bin

logs

*

构建后的输出如下:

f5634d38f88bf7ead48bdfd60ac7a60f.png

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值