name: 发布到 Maven Central on: release: types: [created] # 可选:也可以手动触发 workflow_dispatch: jobs: publish: runs-on: ubuntu-latest steps: - name: 检出代码 uses: actions/checkout@v3 - name: 设置 JDK 1.8 uses: actions/setup-java@v3 with: java-version: '8' distribution: 'temurin' cache: 'maven' - name: 配置 GPG 密钥 run: | # 导入 GPG 密钥 echo "${{ secrets.GPG_SECRET }}" | base64 --decode > private.key gpg --batch --import private.key rm private.key # 配置 GPG 为非交互模式 mkdir -p ~/.gnupg/ echo "use-agent" > ~/.gnupg/gpg.conf echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf echo "allow-loopback-pinentry" > ~/.gnupg/gpg-agent.conf chmod 700 ~/.gnupg chmod 600 ~/.gnupg/* gpg-connect-agent reloadagent /bye - name: 创建 Maven 设置文件 run: | cat > settings.xml << EOF ossrh ${{ secrets.OSSRH_USER }} ${{ secrets.OSSRH_PASSWORD }} central ${{ secrets.OSSRH_USER }} ${{ secrets.OSSRH_PASSWORD }} sonatype-nexus-staging ${{ secrets.OSSRH_USER }} ${{ secrets.OSSRH_PASSWORD }} ossrh true gpg ${{ secrets.GPG_PASSWORD }} EOF - name: 构建并发布到 Maven Central run: | mvn clean deploy \ --batch-mode \ --settings settings.xml \ -Dgpg.passphrase="${{ secrets.GPG_PASSWORD }}" \ -DskipTests=true