Assembly打包maven项目及部署

官网地址:http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

1、把启动脚本文件解压到项目下

脚本文件下载地址:https://download.csdn.net/download/weixin_51311218/18804217

image-20210517160712973

2、 项目中添加插件

<!-- 指定项目的打包插件信息 -->
<plugin>
   <artifactId>maven-assembly-plugin</artifactId>
   <version>3.2.0</version>
   <configuration>
        <finalName>dubbo-service</finalName>
      <!-- 指定打包描述文件的位置:相对项目根目录的路径 -->
      <!-- assembly打包的描述文件 -->
      <descriptors>
         <descriptor>
                   assembly/assembly.xml
         </descriptor>
       </descriptors>
   </configuration>
   <executions>
      <execution>
         <id>make-assembly</id>
         <phase>package</phase>
         <goals>
            <goal>single</goal>
         </goals>
      </execution>
   </executions>
</plugin>

3、编写assembly描述文件

<?xml version="1.0" encoding="UTF-8"?>
<assembly
   xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd">
   <!-- 该字符会添加到最终tar.gz包的名称后面,作为后缀 -->
   <id>assembly</id>
   <!-- 指定打包的格式为tar.gz,该类型压缩包在linux中比较常见 -->
<!--支持 zip,tar,tar.gz,tar.bz2,jar,dir,war 等 -->
   <formats>
      <format>tar.gz</format>
   </formats>
   <!-- 在tar.gz压缩包中是否包含根文件夹,该根文件夹名称和tar.gz去掉id后缀一致 -->
   <includeBaseDirectory>true</includeBaseDirectory>
   <fileSets>
      <!-- 将项目根路径下assembly/bin路径中的内容打包到压缩包中的根目录下的bin目录中 -->
      <fileSet>
      <!-- 相对项目根路径的相对路径 -->
         <directory>assembly/bin</directory>
         <outputDirectory>bin</outputDirectory>
         <!-- 设置最终tar.gz中该文件夹下的权限,跟linux权限写法一致 -->
         <fileMode>0755</fileMode> 
      </fileSet>
      <!-- 将项目根路径下assembly/conf路径中的内容打包到压缩包中的根目录下的conf目录中 -->
      <fileSet>
         <directory>assembly/conf</directory>
         <outputDirectory>conf</outputDirectory>
         <!-- 设置其linux权限 -->
         <fileMode>0644</fileMode>
      </fileSet>
   </fileSets>
   <!-- 将所有依赖的jar包打包到压缩包中的根目录下的lib目录中 -->
   <!-- 此lib目录中包含自己开发的项目jar包以及demo_service.jar,还有第三方的jar包 -->
   <dependencySets>
      <dependencySet>
      <outputDirectory>lib</outputDirectory>
      </dependencySet>
   </dependencySets>
</assembly>

4、将打包后的程序做成系统服务

4.1 Linux CentOS7系统服务描述文件

4.1.1 进入/usr/lib/systemd/system, 新建dubbo.service文件,写入如下内容。

[Unit]
#服务描述
Description=dubbo Service
#设置在某个服务启动后启动:这里为指mysql服务启动后再启动本服务
After=network.target mysqld.service

[Service]
#后台运行的形式
Type=forking
#启动命令,执行该脚本
ExecStart=/path/start.sh
#重启命令,执行该脚本
ExecReload=/path/restart.sh
#停止命令,执行该脚本
ExecStop=/path/stop.sh
#启动失败时,执行重启命令
Restart=on-failure
PrivateTmp=true

[Install]
WantedBy=multi-user.target

4.1.2加载服务并设置启动

systemctl reload *.service #重新加载服务配置文件

然后就可以启动服务了,

systemctl start dubbo.service即可

设置开机启动: systemctl enable dubbo.service

4.2 Window系统服务

下载windows系统服务生成工具: https://github.com/winsw/winsw/releases

按照官网提供方式提供配置文件

<service> 

<!-- ID of the service. It should be unique across the Windows system--> 

<id>myapp</id> 

<!-- Display name of the service --> 

<name>MyApp Service (powered by WinSW)</name> 

<!-- Service description --> 

<description>This service is a service created from a minimal configuration</description> 

<!-- Path to the executable, which should be started --> <executable>%BASE%\myExecutable.exe</executable> 

</service>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雁迟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值