diff --git a/env/init_maven.sh b/env/init_maven.sh new file mode 100644 index 0000000..13dfad1 --- /dev/null +++ b/env/init_maven.sh @@ -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 +} + +# -------------------------- +# 安装 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 \ No newline at end of file