什么是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构建后会生成如下结构:

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

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

在命令行下启动程序:

使用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

*

构建后的输出如下:

参考

JSW Java_使用JSW包装你得Maven应用相关推荐

  1. JSW Java_微服务架构—JAVA打包黑科技

    疑问:Spring Boot已经有了 spring-boot-maven-plugin 的打包方式,为什么还要自己重新实现打包方式呢? 答:都各有优势吧,不过本文的方式更加强大.不过SpringBoo ...

  2. JSW Java_java服务安装(一):使用java service wrapper及maven打zip包

    1.概述 使用java开发程序,在windows平台下,一般有web应用,后台服务应用,桌面应用: web应用多数打成war包在web容器(如tomcat,jetty等)中运行 桌面应用一般打成jar ...

  3. maven jsw配置

    资源文件处理 <resources><resource><directory>src/main/resources</directory><exc ...

  4. java 压缩jar 仓库,java服务安装(一):使用java service wrapper及maven打zip包

    tags: java jsw maven zip 1.概述 使用java开发程序,在windows平台下,一般有web应用,后台服务应用,桌面应用: web应用多数打成war包在web容器(如tomc ...

  5. 【Web安全】JSP内存马研究

    前言 最近在研究webshell免杀的问题,到了内存马免杀部分发现传统的Filter或者Servlet查杀手段比较多,不太容易实现免杀,比如有些工具会将所有注册的Servlet和Filter拿出来,排 ...

  6. JAVA——Tess4J简单的图像识别DEMO

    基本概念 Tesseract Open Source OCR Engine :包含一个OCR引擎 - libtesseract和一个命令行程序 - tesseract.Tesseract 4添加了一个 ...

  7. JSP是如何编译成servlet并提供服务的

    概述 服务端对外提供JSP请求服务的是JspServlet,继承自HttpServlet.核心服务入口在service方法,大体流程如下: 首先获取请求的jspUri,如果客户端发起请求:https: ...

  8. maven 打包zip,jsw相关

    参考链接: https://blog.csdn.net/masson32/article/details/51802732 转载于:https://www.cnblogs.com/wanjn/p/90 ...

  9. spring cloud项目部署为jsw、tomcat的pom脚本

    1.部署为jsw pom文件 <?xml version="1.0"?> <project xsi:schemaLocation="http://mav ...

最新文章

  1. title: postGreSQL 插件 timescaleDB 安装使用 date: 2019-02-14 18:02:23
  2. shell-变量的数值计算
  3. windows与linux下的\r\n
  4. CocoaPods最新版本升级
  5. 光纤收发器模块如何选购,光纤收发器模块选购原则
  6. 上海交大研究生计算机考研真题,2011年上海交通大学计算机研究生机试真题
  7. 【Julia】Julia使用Pkg下载镜像配置问题解决方案
  8. Struts2学习笔记(十九) 验证码
  9. Mean Shift具体介绍
  10. /var/run/yum.pid 已被锁定,PID 为 XXXX 的另一个程序正在运行。
  11. Android下OpenSLES播放PCM音频文件
  12. 如何将 Mac 镜像到电视
  13. 暴力法——猴子分桃-源代码 c语言实现
  14. 1500ml等于多少l_1500ml等于几斤呢?
  15. AIC(最小信息化准则)
  16. 问题 J: LZY订单查询
  17. 【Mysql系列】MySQL创建数据库、CURD的操作
  18. USB 设置配置(SetConfiguration)和设置接口(SetInterface)的区别与联系
  19. python05——摩尔斯电码
  20. 高德地图-删除多个点标记

热门文章

  1. Python 分类导航
  2. w7拨号连接关不掉解决方法
  3. 高频前端开发面试问题及答案整理
  4. shell---sed语句练习
  5. 苹果的iAd广告概念解释
  6. Calibre LVL
  7. Java语言汉语转换为拼音
  8. 字符集(charset)与编码(encoding)区别对比
  9. 开源多云技术平台——Choerodon猪齿鱼发布0.16版本
  10. 做自媒体短视频,做好了这8点,你每天也可以收益200+