This commit is contained in:
@@ -21,21 +21,38 @@ jobs:
|
||||
fi
|
||||
export JAVA_HOME
|
||||
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
|
||||
echo "PATH=/opt/maven/bin:$JAVA_HOME/bin:$PATH" >> $GITHUB_ENV
|
||||
echo "Using JAVA_HOME=$JAVA_HOME"
|
||||
java -version
|
||||
echo "JAVA_HOME=$JAVA_HOME"
|
||||
|
||||
# 2) 确保 Maven 可用 —— 用官方二进制包安装,绕开 dnf 拉 java-17 与已装 JDK 的冲突
|
||||
if [ ! -x /opt/maven/bin/mvn ]; then
|
||||
echo "Maven not found, downloading official binary..."
|
||||
# 2) 确保 Maven 可用 —— 优先用系统已安装的(sdkman/dnf),没有才下载二进制
|
||||
MVN_BIN=""
|
||||
if command -v mvn >/dev/null 2>&1; then
|
||||
MVN_BIN=$(command -v mvn)
|
||||
echo "Maven found in PATH: $MVN_BIN"
|
||||
elif [ -x /opt/maven/bin/mvn ]; then
|
||||
MVN_BIN=/opt/maven/bin/mvn
|
||||
echo "Maven found at /opt/maven"
|
||||
fi
|
||||
|
||||
if [ -z "$MVN_BIN" ]; then
|
||||
echo "Maven not found, downloading binary (aliyun mirror)..."
|
||||
MAVEN_VER=3.9.9
|
||||
cd /tmp
|
||||
curl -fsSL "https://archive.apache.org/dist/maven/maven-3/${MAVEN_VER}/binaries/apache-maven-${MAVEN_VER}-bin.tar.gz" -o maven.tgz
|
||||
curl -fsSL --connect-timeout 15 --max-time 120 \
|
||||
"https://mirrors.aliyun.com/apache/maven/maven-3/${MAVEN_VER}/binaries/apache-maven-${MAVEN_VER}-bin.tar.gz" \
|
||||
-o maven.tgz || \
|
||||
curl -fsSL --connect-timeout 15 --max-time 120 \
|
||||
"https://dlcdn.apache.org/maven/maven-3/${MAVEN_VER}/binaries/apache-maven-${MAVEN_VER}-bin.tar.gz" \
|
||||
-o maven.tgz
|
||||
tar -xzf maven.tgz -C /opt
|
||||
ln -sfn /opt/apache-maven-${MAVEN_VER} /opt/maven
|
||||
rm -f maven.tgz
|
||||
MVN_BIN=/opt/maven/bin/mvn
|
||||
fi
|
||||
/opt/maven/bin/mvn -version
|
||||
|
||||
# 把 Maven 所在目录加入 PATH
|
||||
MVN_DIR=$(dirname "$MVN_BIN")
|
||||
echo "PATH=$MVN_DIR:$JAVA_HOME/bin:$PATH" >> $GITHUB_ENV
|
||||
"$MVN_BIN" -version
|
||||
|
||||
- name: Build with Maven
|
||||
run: mvn -B clean package -DskipTests
|
||||
|
||||
Reference in New Issue
Block a user