diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 8cf8a41..fbe9432 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -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