SPUG 自动化部署Java项目配置

参考URL: https://spug.dev/docs/example-java/

https://www.spug.dev/docs/host-manage/

https://spug.dev/docs/deploy-config/

概览

以 若依管理系统 https://gitee.com/y_project/RuoYi 作为例子,最终大概是这样子的。

以下基于 spug v2.3.4 版本,如果低于 v2.3.4 可以参考 版本升级文档 进行升级,例子仅作为演示,一般情况下你都需要结合自己的项目情况调整配置。

about

安装 jdk / maven

如果已安装可跳过该步骤,这里以安装 jdk-8u251 和 maven-3.6.3 为例,如果你使用 Docker 部署的 Spug,可参考以下步骤进行安装

以下仅适用于 2.3.4 及以后的镜像(基于 Centos)启动的容器(这里的 2.3.4 并不是 Spug 的版本号,请在 hub.docker.com 查询镜像版本), 之前的版本的镜像(基于 Alpine)可参考 Java项目配置

因 Oracle JDK 下载需要登录账户请自行下载,这里直接使用下载完成的 jdk-8u251-linux-x64.tar.gz 文件。

 自行至 https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 下载jdk
把已下载的压缩包拷贝进容器
docker cp jdk-8u251-linux-x64.tar.gz spug:/
docker exec -it spug bash
tar xf jdk-8u251-linux-x64.tar.gz -C /opt

# 安装maven
 curl -o apache-maven-3.6.3-bin.tar.gz http://apache.mirrors.pair.com/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
 tar xf apache-maven-3.6.3-bin.tar.gz -C /opt/
 echo -e 'export JAVA_HOME=/opt/jdk1.8.0_251\nexport PATH=$PATH:$JAVA_HOME/bin:/opt/apache-maven-3.6.3/bin' > /etc/profile.d/java.sh

# [可选]配置阿里云镜像加速下载,在159-164行(<mirrors>标签内)添加以下内容
$ vi /opt/apache-maven-3.6.3/conf/settings.xml

   <mirror>
     <id>aliyunmaven</id>
     <mirrorOf>*</mirrorOf>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
   </mirror>

# 退出并重启容器
 exit
 docker restart spug

文件过滤

只需要发布编译过的 jar 包,所以这里选择了 包含 规则。

ruoyi-admin.jar

自定义变量

该例子中并不需要特殊的全局变量,如果你需要的话可以在这里定义,然后在下边的钩子中类似 $SPUG_DEPLOY_ID 那样去引用。

代码检出前

该例子中也不需要执行。

代码检出后

在这里进行项目的依赖包安装和编译工作,该钩子中当前目录即为按发布申请中选择 Git 分支/版本 检出后的代码目录。

# 执行maven编译
$ mvn clean package -Dmaven.test.skip=true
$ cp ruoyi-admin/target/ruoyi-admin.jar .

这里拷贝 ruoyi-admin.jar 至项目根目录,因为咱们文件过滤规则指定的就是相对于项目根目录。

应用发布前

发布前停止现有的服务。

# 停止服务
$ set +e
$ ps -ef | grep ruoyi-admin | grep -v grep | awk '{print $2}' | xargs kill -9

因为 Spug 会检测每个钩子内脚本最终退出状态码,如果非 0 则认为执行异常终止发布,所以如果你的目标主机是 Centos 则需要通过 if 来判断进程 是否存在,如果存在才执行 kill

# 停止服务
$ PID=$(ps -ef | grep ruoyi-admin | grep -v grep | awk '{print $2}')
$ if [ ! -z $PID ]; then
$    kill -9 $PID
$ fi

应用发布后

在这里启动服务。

# 添加jdk至PATH变量
PATH=$PATH:/usr/local/jdk1.8.0_231/bin
nohup java -jar ruoyi-admin.jar &> run.log &
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值