一、 目标
在一台CentOS8服务器下,安装JDK8、Maven、Git用户构建手工部署环境,编写脚本,一键下载更新代码打包,重启服务等。
二、安装 Jdk1.8
安装JDK8,可从Oracle官网进行下载,下载地址:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
下载文件为:jdk-8u172-linux-x64.tar.gz
安装步骤如下:
1、创建目录并上传包
登录Linux服务器,并创建目录 /usr/java,将 jdk-8u172-linux-x64.tar.gz 传至 此目录。
1
2
3
4
5
6
7
# 创建目录
cd /usr
mkdir java
cd java
# 上传文件
# 解压文件
tar -zvxf jdk-8u172-linux-x64.tar.gz
2、配置环境变量
环境变量文件为 /etc/profile ,编辑它
1
vim /etc/profile
在这个文件最末尾加上如下配置,并保存
1
2
3
4
5
# java
export JAVA_HOME=/usr/java/jdk1.8 #注意这里是刚刚安装的jdk的路径
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
添加完配置后,需要让环境变量生效
1
source /etc/profile
测试
1
2
3
4
5
6
7
8
9
10
[root@ruoli_151 java]# java -version
java version "1.8.0_172"
Java(TM) SE Runtime Environment (build 1.8.0_172-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.172-b11, mixed mode)
[root@ruoli_151 java]# javac
用法: javac <options> <source files>
其中, 可能的选项包括:
-g 生成所有调试信息
三、安装Maven
可直接在官网进行下载,此处选择版本为:apache-maven-3.8.8-bin.tar.gz
创建文件夹并导入安装包
1
2
3
4
5
6
7
8
cd /usr/
mkdir maven
cd maven
# 在此目录下上传 maven 安装包
# 解压安装包
tar -zxvf apache-maven-3.8.8-bin.tar.gz
# 文件夹改名字
mv apache-maven-3.8.8 maven-3.8.8
修改maven配置
1
2
3
4
5
6
7
8
#
cd maven-3.8.8
#创建文件夹用来做本地仓库的文件夹,否则的话默认是在${user.home}/.m2/repository
mkdir repo
# 修改配置文件,设置本地仓库文件夹,此处也可上传已有的 settings.xml文件
vim maven-3.5.4/conf/settings.xml
# 添加如下内容
<localRepository>/usr/maven/maven-3.5.4/repo</localRepository>
添加环境变量
环境变量文件为 /etc/profile ,编辑它bahs
1
vim /etc/provfile
在这个文件最末尾加上如下配置,并保存
1
2
3
# maven
export MAVEN_HOME=/usr/maven/maven-3.8.8
export PATH=$PATH:${MAVEN_HOME}/bin
使环境变量生效
1
source /etc/profile
验证
1
2
3
4
5
6
[root@ruoli_151 maven]# mvn -v
Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)
Maven home: /usr/maven/maven-3.8.8
Java version: 1.8.0_172, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.el7.x86_64", arch: "amd64", family: "unix"
四、安装Git
可通过yum 安装 git
1
yum install git
验证安装
1
2
[root@ruoli_151 maven]# git version
git version 1.8.3.1
配置用户名和邮箱信息
1
2
git config --global user.name “username”
git config --global user.email “email”
注意
“username”
和“email”
和前面单词之间有一个空格!
生成SSH Key
1
2
# 你的Github绑定的邮箱
ssh-keygen -t rsa -C "***@gmail.com"
获取SSH Key
根据命令行提示,进入文件夹,获取以ssh-rsa
的字符串(包括ssh-rsa
)
复制此文件中的内容,添加至Github 公钥。
五、编写服务部署脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/bash
set -e
# 设置变量
WORKSPACE_DIR="/root/work-space/hello"
BACKUP_DIR="$WORKSPACE_DIR/backup"
JAR_FILE="hello-0.0.1-SNAPSHOT.jar"
LOG_FILE="log-test.out"
DEFAULT_BRANCH="master" # 默认分支名
# 日志函数
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1"
}
# 检查是否提供分支名称作为参数,如果没有则使用默认值
if [ $# -eq 1 ]; then
BRANCH_NAME="$1"
else
BRANCH_NAME="$DEFAULT_BRANCH"
fi
cd "$WORKSPACE_DIR"
log "开始更新代码"
# 更新代码到指定分支
if ! git checkout "$BRANCH_NAME"; then
log "Error: Branch $BRANCH_NAME does not exist."
exit 1
fi
git pull
log "正在构建包文件"
# 编译打包
if ! mvn clean compile package -Dmaven.test.skip=true; then
log "Error: Maven build failed."
exit 1
fi
current=$(date "+%Y%m%d%H%M")
log "正在备份原有部署文件"
# 备份文件
if ! cp "$WORKSPACE_DIR/target/$JAR_FILE" "$BACKUP_DIR/$JAR_FILE-$current.jar"; then
log "Error: Failed to copy file."
exit 1
fi
cd "$WORKSPACE_DIR/target"
log "正在关闭原有进程"
# 关闭进程
# 检查进程是否存在,如果存在则关闭
if ps -ef | grep "$JAR_FILE" | grep -v grep >/dev/null; then
ps -ef | grep "$JAR_FILE" | grep -v grep | awk '{print $2}' | xargs kill -9
log "成功关闭原有进程"
else
log "原有进程不存在,无需关闭"
fi
sleep 1
log "开启服务进程"
nohup java -jar "$JAR_FILE" > "$LOG_FILE" 2>&1 &
log "已后台下发程序启动命令,以下为启动日志信息:"
tail -f "$LOG_FILE"