CentOS8安装JDK8、Maven、Git

CentOS8安装JDK8、Maven、Git,并构建手工服务部署环境

Posted by shrmars on April 13, 2024

一、 目标

在一台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"