美文网首页
java服务安装(三):使用appassembler

java服务安装(三):使用appassembler

作者: mason技术记录 | 来源:发表于2019-08-05 14:27 被阅读0次

tags: java maven


1、概述

1.1、为什么使用appassembler

java程序打成jar包后,简单的使用命令行java -jar直接来启动应用,但这样很不优雅,部署人员需要自己写脚本,而且也不符合工程化要求。至少这个包打出来后,部署或者安装人员只需要根据实际情况修改配置,直接start/stop来启动即可。

之前介绍过对于java服务程序,使用jsw和commons-daemon进行服务安装(见我的两篇文章《java服务安装(一):使用java service wrapper及maven打zip包》《java服务安装(二):使用commons-daemon》),这两种方法对于简单的java服务,相对来讲还是有点繁琐,对于spring boot而言,官方网站推荐linux脚本和winsw的方式,也比较繁琐。

后来经过查阅,发现有个appassembler的maven插件,完美解决了服务安装部署包的处理,配置好插件后,mvn package即可生成完整部署包,并且适用于linux和windows两种平台。

1.2、appassembler介绍

appassembler官网有介绍,总的来说,它是一个maven插件,用于生成启动关闭应用的脚本,同时集成了相应的需要启动应用的依赖(当然,jdk还是要自己安装的)。它适用于linux平台、windows平台。使用的也是jsw的支持。

1.3、本文主要内容

本文通过一个简单的java应用示例和appassemblermaven配置,实现部署安装包的导出。此示例配置也适用于基于spring boot的应用。

2、程序示例

本示例是使用java生成一个文件并写入内容。生成安装部署包后,在linux下可使用直接startstop启动和关闭。在windows平台,可以注册为服务,从而以服务的形式启动和关闭。项目结构如下图:

共三个文件App是启动入口,FileGenerator用于生成文件并输出内容,pom.xml是相应的配置。AppFileGenerator比较简单,读者下载示例,看一下知道,不再细说,主要说一下pom.xml的配置项以及打包出来的内容。

3、打包说明

最终打出来部署包的结果如下:

说明:部署包主要分为bin,etc,lib,logs,这是比较通用的目录了,分别是运行脚本文件目录,配置文件目录,依赖包目录,日志目录。当前目录名称可以修改。

3.1 appassembler配置说明

<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>appassembler-maven-plugin</artifactId>
                <version>2.0.0</version>
                <executions>
                    <execution>
                        <id>generate-jsw-scripts</id>
                        <phase>package</phase>
                        <goals>
                            <goal>generate-daemons</goal>
                        </goals>
                        <configuration>
                            <repositoryLayout>flat</repositoryLayout>
                            <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
                            <!--指定日志目录-->
                            <logsDirectory>logs</logsDirectory>
                            <daemons>
                                <daemon>
                                    <!-- 指定服务名称 -->
                                    <id>app1</id>
                                    <!-- 指定服务主入口类 -->
                                    <mainClass>me.mason.test.app_assembler.App</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-64</include>
                                                <include>macosx-universal-32</include>
                                                <include>windows-x86-32</include>
                                                <include>windows-x86-64</include>
                                            </includes>
                                            <configuration>
                                                <!-- 指定配置文件目录 -->
                                                <property>
                                                    <name>configuration.directory.in.classpath.first</name>
                                                    <value>etc</value>
                                                </property>
                                                <!-- 指定依赖包目录 -->
                                                <property>
                                                    <name>set.default.REPO_DIR</name>
                                                    <value>lib</value>
                                                </property>
                                                <!-- 指定wrapper日志文件位置 -->
                                                <property>
                                                    <name>wrapper.logfile</name>
                                                    <value>logs/wrapper.log</value>
                                                </property>
                                            </configuration>
                                        </generatorConfiguration>
                                    </generatorConfigurations>
                                </daemon>
                            </daemons>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

如上配置所示的注释,打包配置相对来说比较简单,指定appassembler-maven-plugin插件,在package阶段生成JSW运行脚本。其中,需要指定服务名称、服务主入口类,配置文件目录和依赖文件目录等。

3.2 生成部署包

  • 使用maven打包,命令mvn package,即可生成安装包目录,位置是target\generated-resources\appassembler\jsw
  • 安装时,进入到bin目录下,linux下,chmod +x修改脚本运行权限,执行app1 start即可启动应用。
  • windows下,需要以管理员身份运行app1.bat,使用如下:
rem 安装应用为服务
app1.bat install 

rem 启动服务
app1.bat start 

rem 关闭服务
app1.bat stop

rem 卸载服务
app1.bat remove 

4、下载示例

链接: https://pan.baidu.com/s/1An8nJcAIxvtN7ocAnrpW9w 密码: c2ae

相关文章

  • java服务安装(三):使用appassembler

    tags: java maven 1、概述 1.1、为什么使用appassembler java程序打成jar包后...

  • Java 使用 Redis

    安装开始在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis ...

  • Rocket搭建及刨坑

    RocketMQ安装 安装条件 Linux服务器 maven JAVA环境配置 git(使用git安装的情况下) ...

  • 阿里云CentOS7安装Java运行环境

    Tip: 使用Xshell连接CentOS。一、安装Java环境 二、安装mysql(5.7.17) 三、安装To...

  • zookeeper集群环境搭建

    1、服务器环境 VM安装三台CentOS服务器,可以采用克隆方式安装,配置IP地址如下 2、安装Java环境 2....

  • Linux下ppt转换成图片

    安装软件 安装字体 转换 使用 Java调用 sh Java 依赖 java

  • 28 java代码访问zookeeper

    这一节我们将展示使用java访问zookeeper服务。 1、前提约束 完成zookeeper的安装https:/...

  • mac 下安装 java

    查看 Java 安装版本 安装 Java 不建议使用 官网的 macOS dmg 方式安装,建议使用 brew 来...

  • elasticsearch java

    已经安装好了elasticsearch服务,使用java开发语言,还在纠结于使用哪一种client去连接操作ela...

  • 使用CentOS7安装配置Jenkins

    安装Java Jenkins依赖Java,如果你的系统没有安装的话,需要先安装Java,已安装的话,可以忽略。使用...

网友评论

      本文标题:java服务安装(三):使用appassembler

      本文链接:https://www.haomeiwen.com/subject/gwkmdctx.html