#!/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 } # -------------------------- # 安装 Java(Maven 依赖 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' aliyun Aliyun Maven https://maven.aliyun.com/repository/public * 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