项目现状

由于项目一开始时间比较紧,没有考虑项目工程发布的问题,都是人工打包编译后端代码JAR包,然后ftp上传至服务器,手动执行脚本,kill进程,再重启服务,随着,项目后期测试频繁,这样手工发布就觉得繁琐,于是,在本地虚拟机搞个Jenkins自动编译打包,上传至服务器,然后重启服务

Jenkins是一个开源自动化服务器,可以自动执行持续集成和交付软件所涉及的重复技术任务。

流程图

Java 全自动化打包脚本 java项目自动部署工具_Java 全自动化打包脚本

环境要求

  1. JDK
    由于Jenkins是基于Java的,需要安装JDK
    虚拟机安装 Java 8
    指令 $ sudo apt install openjdk-8-jdk
  2. 本地虚拟机的操作系统为 ubuntu20.04.1,安装操作可以参考
    如何在Ubuntu 18.04上安装Jenkins

打包环境

1.maven

我们项目基于maven管理项目的依赖,所以虚拟机需要安装maven环境

指令 sudo apt install maven 查看maven的信息

Java 全自动化打包脚本 java项目自动部署工具_jenkins_02


2.Jenkins安装maven 工具

Java 全自动化打包脚本 java项目自动部署工具_jenkins_03


3.Jenkins安装SHH 工具

Java 全自动化打包脚本 java项目自动部署工具_Java 全自动化打包脚本_04

配置环境

1.配置打包环境的JDK

Java 全自动化打包脚本 java项目自动部署工具_Jenkins_05


2.配置环境的maven

Java 全自动化打包脚本 java项目自动部署工具_Jenkins_06


3.配置SSH信息(属于全局变量)

Java 全自动化打包脚本 java项目自动部署工具_jenkins_07


这里有个Remote Directory需要注意,比如我目标地址是

/usr/local/A,但是我有个两个地方都需要用到ssh配置

但是另一个是/usr/local/B,这里就配置成/usr/local即可,在发布任务的配置的,可以继续配置个性化的路径

新建任务

配置源码

Java 全自动化打包脚本 java项目自动部署工具_Java 全自动化打包脚本_08

配置构建后的SSH任务

1.选择构建完成后任务

Java 全自动化打包脚本 java项目自动部署工具_Java 全自动化打包脚本_09


2.配置SSH

Java 全自动化打包脚本 java项目自动部署工具_jenkins_10


由于我们项目有三个pom.xml,Jenkins会将每个pom.xml都进行编译,我们只需要其中一个JAR上传服务器

**/jeecg-boot-module-system/target/*.jar 这句话的意思就是找到项目中jeecg-boot-module-system文件夹下,target中的jar上传

其中**/表示是目前项目的工作空间路径,比如我们项目工作空间是jeecg-boot,那么**/jeecg-boot-module-system/target/*.jar代表真实路径就是/jeecg-boot/jeecg-boot-module-system/target/*.jar

Remove prefix 过滤路径

比如上传的文件路径为**/jeecg-boot-module-system/target/*.jar,但是上传到服务器之后,不需要将其他路径也一起新建,如果不填写这个项目就会在目标路径文件夹下,新建jeecg-boot-module-system、target这件文件夹

Remote directory 目标路径

这里会与配置的SSH中Remote Directory路径结合,比如我在SSH配置中写了/usr/local,实际路径就是
/usr/local+Remote directory

Exec command 执行脚本

这里配置目标文件上传到服务器之后,需要直接的shell命令。

cd /usr/local/sztj
sh stop.sh
sh start.sh

1.停止服务的脚本

#!/bin/sh
pid=`ps -ef|grep jeecg-boot-module-system-2.2.0.jar|grep -v grep|awk '{print $2}'`
kill -9 $pid

2.启动服务脚本

$ nohup java  -jar jeecg-boot-module-system-2.2.0.jar &

构建任务

Java 全自动化打包脚本 java项目自动部署工具_jar_11