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

如何使用GitLab组级部署令牌替代部署密钥构建Maven发布阶段

替换部署密钥为组级部署令牌实现Git操作与Maven认证

一、修改GitLab CI脚本

原脚本基于SSH部署密钥实现认证,现在替换为HTTPS方式的部署令牌认证,调整before_script部分如下:

release-job:
  stage: release  
  when: manual
  before_script:       
    - apt-get update && apt-get install -y git
    - git config --global user.email $GITLAB_USER_EMAIL
    - git config --global user.name $GITLAB_USER_ID
    - git checkout -B $CI_COMMIT_REF_NAME
    # 配置Git使用部署令牌认证(需提前在GitLab CI变量中设置DEPLOY_TOKEN_USER和DEPLOY_TOKEN_PASSWORD)
    - git config --global credential.helper store
    - echo "https://${DEPLOY_TOKEN_USER}:${DEPLOY_TOKEN_PASSWORD}@gitlab.com" > ~/.git-credentials
    # 将远程仓库URL从SSH切换为HTTPS(替换为你的实际组/项目路径)
    - git remote set-url origin https://gitlab.com/[你的组/项目路径].git
  script:
    - mvn -Dresume=false release:prepare release:perform -s $CI_PROJECT_DIR/mvn-settings.xml

关键修改点:

  • 删除所有SSH相关配置(创建.ssh目录、复制私钥、添加known_hosts)
  • 添加Git凭证配置,用部署令牌的用户名和密码生成HTTPS认证凭证
  • 将Git远程仓库地址从SSH格式(git@gitlab.com:...)切换为HTTPS格式,确保使用部署令牌认证

二、修改mvn-settings.xml配置

原配置使用CI_JOB_TOKEN,现在替换为部署令牌的用户名和密码,调整<servers>节点内容:

<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
  <servers>
    <server>
      <id>gitlab-maven</id>
      <!-- 使用组级部署令牌的用户名和密码 -->
      <username>${DEPLOY_TOKEN_USER}</username>
      <password>${DEPLOY_TOKEN_PASSWORD}</password>
    </server>
  </servers>
</settings>

关键修改点:

  • 删除原有的httpHeaders配置
  • 添加<username>和<password>节点,引用GitLab CI中配置的部署令牌变量

前置准备

  1. 在GitLab项目的设置 → CI/CD → 变量中,添加两个变量:
    • DEPLOY_TOKEN_USER:组级部署令牌的用户名
    • DEPLOY_TOKEN_PASSWORD:组级部署令牌的密码
  2. 确保组级部署令牌拥有对应项目的读/写权限(Maven发布通常需要仓库写入权限)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 22:48:33