Script-Collected/env/init_maven.sh

161 lines
3.9 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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