- 使用阿里云镜像代理Maven Central(解决403错误) #245
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Publish package to the Maven Central Repository | |
| on: | |
| push: | |
| branches: | |
| - master | |
| jobs: | |
| publish: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v2 | |
| with: | |
| fetch-depth: 0 | |
| - name: Extract version from pom.xml | |
| id: get_version | |
| run: | | |
| VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/') | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| echo "Detected version: $VERSION" | |
| - name: Check if tag exists | |
| id: check_tag | |
| run: | | |
| if git rev-parse "v${{ steps.get_version.outputs.version }}" >/dev/null 2>&1; then | |
| echo "exists=true" >> $GITHUB_OUTPUT | |
| echo "Tag v${{ steps.get_version.outputs.version }} already exists" | |
| else | |
| echo "exists=false" >> $GITHUB_OUTPUT | |
| echo "Tag v${{ steps.get_version.outputs.version }} does not exist" | |
| fi | |
| - name: Create Release | |
| id: create_release | |
| if: steps.check_tag.outputs.exists == 'false' | |
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: v${{ steps.get_version.outputs.version }} | |
| release_name: Release v${{ steps.get_version.outputs.version }} | |
| body: | | |
| Auto-generated release for version ${{ steps.get_version.outputs.version }} | |
| draft: false | |
| prerelease: false | |
| - name: Set up Maven Central Repository | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '8' | |
| distribution: 'temurin' | |
| cache: 'maven' | |
| - name: Configure Maven settings | |
| env: | |
| MAVEN_USERNAME: ${{ secrets.mvn_central_portal_user_name }} | |
| MAVEN_PASSWORD: ${{ secrets.mvn_central_portal_password }} | |
| run: | | |
| mkdir -p ~/.m2 | |
| cat > ~/.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"> | |
| <servers> | |
| <server> | |
| <id>ossrh</id> | |
| <username>${MAVEN_USERNAME}</username> | |
| <password>${MAVEN_PASSWORD}</password> | |
| </server> | |
| </servers> | |
| <mirrors> | |
| <mirror> | |
| <id>aliyun-maven</id> | |
| <mirrorOf>central</mirrorOf> | |
| <name>Aliyun Maven Mirror</name> | |
| <url>https://maven.aliyun.com/repository/public</url> | |
| </mirror> | |
| </mirrors> | |
| <profiles> | |
| <profile> | |
| <id>ossrh</id> | |
| <repositories> | |
| <repository> | |
| <id>ossrh</id> | |
| <url>https://oss.sonatype.org/content/repositories/snapshots</url> | |
| </repository> | |
| </repositories> | |
| </profile> | |
| </profiles> | |
| <activeProfiles> | |
| <activeProfile>ossrh</activeProfile> | |
| </activeProfiles> | |
| </settings> | |
| EOF | |
| - name: Install gpg secret key | |
| run: | | |
| cat <(echo -e "${{ secrets.OSSRH_GPG_SECRET_KEY }}") | gpg --batch --import | |
| gpg --list-secret-keys | |
| - name: Publish package | |
| env: | |
| MAVEN_USERNAME: ${{ secrets.mvn_central_portal_user_name }} | |
| MAVEN_PASSWORD: ${{ secrets.mvn_central_portal_password }} | |
| MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
| run: mvn clean deploy --batch-mode -Dmaven.skip.Test=true |