You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置CircleCI(自定义YML/现有ORB)发布Java库至GitHub Packages

解决CircleCI发布Java正式版到GitHub Packages的密钥权限问题

核心问题分析

mvn release:prepare和release:perform会修改版本号并提交到GitHub仓库,默认CircleCI的部署密钥如果是只读的就会触发报错。你配置了写入权限的密钥但未生效,大概率是CircleCI没有正确关联该密钥完成Git操作。

无需GPG的标准ORB方案:CircleCI官方Maven ORB

官方circleci/maven orb已支持GitHub Packages发布,且不需要强制GPG配置,具体步骤如下:

  1. 配置CircleCI环境变量

    • 在项目的CircleCI设置中添加两个环境变量:
      • GITHUB_TOKEN:拥有仓库写入权限的个人访问令牌(PAT),优先用PAT而非部署密钥,避免SSH密钥的权限映射问题
      • GITHUB_USERNAME:你的GitHub用户名
  2. 编写CircleCI配置文件
    替换现有发布步骤,示例config.yml:

    version: 2.1
    orbs:
      maven: circleci/maven@1.4.1
    
    workflows:
      release-workflow:
        jobs:
          - maven/release:
              release-branch-pattern: main  # 替换为你的主分支名称
              maven-command: "release:prepare release:perform -DskipTests -s .circleci/settings.xml"
              git-user-email: "你的Git邮箱"
              git-user-name: "你的Git用户名"
    
  3. 修正settings.xml配置
    确保.circleci/settings.xml中GitHub Packages的服务器配置关联环境变量:

    <servers>
      <server>
        <id>github</id>
        <username>${env.GITHUB_USERNAME}</username>
        <password>${env.GITHUB_TOKEN}</password>
      </server>
    </servers>
    

替代方案:手动配置Git认证

如果不想使用ORB,可在发布步骤前手动配置Git认证:

jobs:
  release:
    docker:
      - image: cimg/openjdk:17.0
    steps:
      - checkout
      - run:
          name: 配置Git身份与远程仓库
          command: |
            git config user.name "你的Git用户名"
            git config user.email "你的Git邮箱"
            # 替换远程仓库为HTTPS协议,用PAT认证
            git remote set-url origin https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/你的用户名/你的仓库名.git
      - run:
          command: mvn release:prepare release:perform -DskipTests -s .circleci/settings.xml -f pom.xml

内容的提问来源于stack exchange,提问作者daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:40:13