build: 添加 Maven 安装脚本(使用国内镜像)

- 新增 init_maven.sh脚本,用于自动安装 Maven并配置阿里云镜像源- 脚本功能包括:  - 检查 root权限
  - 安装 Java(Maven 依赖) - 下载并安装 Maven(使用阿里云镜像)
  -配置 Maven 环境变量
  - 配置阿里云 Maven 镜像源 - 测试 Maven 安装- 启用严格模式,确保脚本执行的稳定性和可靠性- 添加颜色定义和日志函数,提高脚本输出的可读性
This commit is contained in:
hsc 2025-04-26 22:06:40 +08:00
parent f1d656b2b5
commit be03bea588
1 changed files with 161 additions and 0 deletions

161
env/init_maven.sh vendored Normal file
View File

@ -0,0 +1,161 @@
#!/bin/bash
# ==============================================
# Maven 安装脚本(使用国内镜像)
# 功能:自动安装 Maven 并配置阿里云镜像源
# ==============================================
# 启用严格模式
set -euo pipefail
# --------------------------
# 颜色定义
# --------------------------
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
# --------------------------
# 日志函数
# --------------------------
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1" >&2
}
# --------------------------
# 检查 root 权限
# --------------------------
check_root() {
if [ "$(id -u)" -ne 0 ]; then
log_error "请使用 root 用户或通过 sudo 运行此脚本"
exit 1
fi
}
# --------------------------
# 安装 JavaMaven 依赖 Java
# --------------------------
install_java() {
log_info "正在检查 Java 是否已安装..."
if ! command -v java &> /dev/null; then
log_warn "未检测到 Java正在安装 OpenJDK 17..."
dnf install -y java-17-openjdk-devel
else
log_info "Java 已安装,版本信息如下:"
java -version
fi
}
# --------------------------
# 下载并安装 Maven使用国内镜像
# --------------------------
install_maven() {
log_info "正在下载并安装 Maven使用国内镜像..."
# 定义 Maven 版本和安装路径
MAVEN_VERSION="3.8.8"
INSTALL_DIR="/opt/maven"
# 使用阿里云镜像地址
MAVEN_URL="https://mirrors.aliyun.com/apache/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}-bin.tar.gz"
# 创建安装目录
mkdir -p "$INSTALL_DIR"
# 下载 Maven
log_info "正在从阿里云镜像下载 Maven ${MAVEN_VERSION}..."
curl -L -o "/tmp/apache-maven-${MAVEN_VERSION}-bin.tar.gz" "$MAVEN_URL"
# 解压到安装目录
tar -xzf "/tmp/apache-maven-${MAVEN_VERSION}-bin.tar.gz" -C "$INSTALL_DIR" --strip-components=1
# 清理临时文件
rm -f "/tmp/apache-maven-${MAVEN_VERSION}-bin.tar.gz"
log_info "Maven 已成功安装到 ${INSTALL_DIR}"
}
# --------------------------
# 配置环境变量
# --------------------------
configure_env() {
log_info "正在配置 Maven 环境变量..."
# 添加 Maven 到 PATH
echo 'export M2_HOME=/opt/maven' > /etc/profile.d/maven.sh
echo 'export PATH=$M2_HOME/bin:$PATH' >> /etc/profile.d/maven.sh
# 使配置立即生效
source /etc/profile.d/maven.sh
log_info "Maven 环境变量已配置完成"
}
# --------------------------
# 配置阿里云镜像源
# --------------------------
configure_aliyun_mirror() {
log_info "正在配置阿里云 Maven 镜像源..."
# 创建 Maven 配置目录
mkdir -p /root/.m2
# 配置 settings.xml 文件
cat > /root/.m2/settings.xml <<'EOF'
<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">
<mirrors>
<mirror>
<id>aliyun</id>
<name>Aliyun Maven</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
</settings>
EOF
log_info "阿里云 Maven 镜像源已配置完成"
}
# --------------------------
# 测试 Maven 安装
# --------------------------
test_maven() {
log_info "正在测试 Maven 安装..."
mvn -v
log_info "Maven 安装测试完成"
}
# --------------------------
# 主函数
# --------------------------
main() {
check_root
install_java
install_maven
configure_env
configure_aliyun_mirror
test_maven
log_info "Maven 已成功安装并配置!"
}
# --------------------------
# 执行主函数
# --------------------------
main
exit 0