Linux 下搭建 SpringBoot 項目自動化部署環境
# 系統環境
Alibaba Cloud ESC Linux CentOS 7.9
准備文件夾
# 存放日志文件
/home/log
# 存放 maven 以及本地倉庫
/home/ProgrammingTool
# 存放項目
/home/project
環境安裝
JDK 安裝配置
安裝
# 下載 rpm 安裝包
https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html
# 安裝指令
rpm -ivh jdk-8u261-linux-x64.rpm
檢驗安裝
# 查看版本
java -version
GIT 安裝配置
安裝
# 直接下載安裝
yum -y install git
檢驗安裝
git
配置
git config --global user.name "wangxiang"
git config --global user.email "276644985@qq.com"
MAVEN 安裝配置
安裝
# 下載 apache-maven-3.6.3-bin.tar.gz
https://maven.apache.org/download.cgi
# 或者
wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
#如果沒有 wget 輸入
yum -y install wget
# 解壓 (../ProgrammingTool/ 是解壓到指定目錄)
tar zxvf apache-maven-3.6.3-bin.tar.gz -C ../ProgrammingTool/
配置
# 打開文件配置文件
/etc/profile
# 添加以下配置
export MAVEN_HOME=/home/ProgrammingTool/apache-maven-3.6.3
export MAVEN_HOME
export PATH=$PATH:$MAVEN_HOME/bin
# 生效改動配置
source /etc/profile
檢驗安裝
mvn -version
修改 maven 配置文件
# 打開配置文件
/home/ProgrammingTool/apache-maven-3.6.3/conf/settings.xml
# 修改配置如下
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 設置倉庫目錄 -->
<localRepository>/home/ProgrammingTool/maven_repository</localRepository>
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers></servers>
<!-- 設置中央倉庫鏡像地址 -->
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>Alibaba Cloud Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>AliCloud public repository</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central1</mirrorOf>
</mirror>
<mirror>
<id>net-cn</id>
<mirrorOf>central2</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://maven.net.cn/content/groups/public/</url>
</mirror>
</mirrors>
<profiles></profiles>
</settings>
拉取項目
cd /home/project
git clone https://gitee.com/Haidnor/AlibabaCloudLinuxProjetc.git
編寫 shell 腳本
#!/bin/bash
echo ""
echo -e "\033[34m>>> SCRIPT START \033[0m"
sleep 0.3
PID=$(ps -ef | grep 'java' | awk '{print $2}')
if [ -n "$PID" ]; then
for id in $PID
do
echo -e "\033[31mSTOP $(ps -ef | grep $id | awk '{print $2" "$10}' ) \033[0m"
kill -9 $id
done
fi
projec_dir='/home/project/AlibabaCloudLinuxProjetc'
cd $projec_dir
git pull
mvn clean package -Dmaven.test.skip=true
cd /
nohup java -jar ./home/project/AlibabaCloudLinuxProjetc/target/linux-1.0.jar > /home/log/projet-log.out 2>&1 &
echo -e "\033[34m>>> SCRIPT END \033[0m"
更新部署項目
/home/project/project.sh
查看日志
cd /home/log
tail -fn 10 projet-log.out