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

GitLab CI中使用Maven Release插件无法提交文件的问题求助

解决GitLab CI中Maven Release插件Git提交失败问题

问题核心

报错无法解析主机名jan-stefan,说明CI环境无法识别这个主机对应的Git仓库地址,导致无法推送Release相关的提交和标签。

解决步骤

1. 修正Git远程仓库与SCM配置

  • 在CI环境中执行git remote -v,确认当前远程仓库URL是否使用了jan-stefan这个无法解析的主机名。将其替换为GitLab仓库的HTTPS或SSH标准地址:
    • HTTPS格式:https://gitlab.example.com/your-group/your-project.git
    • SSH格式:git@gitlab.example.com:your-group/your-project.git
  • 同步修改pom.xml中的<scm>节点,确保connection、developerConnection、url都使用正确的GitLab地址,示例:
    <scm>
      <connection>scm:git:https://gitlab.example.com/your-group/your-project.git</connection>
      <developerConnection>scm:git:git@gitlab.example.com:your-group/your-project.git</developerConnection>
      <url>https://gitlab.example.com/your-group/your-project</url>
    </scm>
    

2. 配置CI环境的Git认证

方式一:SSH认证

  • 在GitLab项目的「Settings → CI/CD → Variables」中添加SSH_PRIVATE_KEY变量,值为能访问该仓库的无密码SSH私钥。
  • 在gitlab-ci.yml的before_script中配置SSH代理:
    before_script:
      - 'which ssh-agent || (apt-get update -y && apt-get install openssh-client -y)'
      - eval $(ssh-agent -s)
      - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
      - mkdir -p ~/.ssh
      - chmod 700 ~/.ssh
      - echo "Host gitlab.example.com" >> ~/.ssh/config
      - echo "  StrictHostKeyChecking no" >> ~/.ssh/config
    

方式二:HTTPS认证

  • 利用GitLab内置的CI_JOB_TOKEN进行认证,将仓库URL改为:
    https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.example.com/your-group/your-project.git
  • 执行Maven命令时可直接传入认证参数:
    mvn release:prepare release:perform -Dusername=gitlab-ci-token -Dpassword=${CI_JOB_TOKEN}
    

3. 检查Runner网络解析能力

  • 登录GitLab Runner所在服务器,执行ping jan-stefan,如果无法解析:
    • 要么在Runner的/etc/hosts文件中添加jan-stefan对应的IP映射(仅适用于内部固定IP场景);
    • 要么直接放弃jan-stefan主机名,改用GitLab仓库的公网域名/IP地址。

4. 优化Maven Release插件配置

  • 在pom.xml中确保release插件配置正确,避免硬编码错误地址:
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-release-plugin</artifactId>
      <version>3.0.0</version>
      <configuration>
        <tagNameFormat>v@{project.version}</tagNameFormat>
        <pushChanges>true</pushChanges>
        <remoteTagging>true</remoteTagging>
        <!-- 可直接指定远程仓库地址,覆盖SCM配置 -->
        <remoteRepositoryUrl>https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.example.com/your-group/your-project.git</remoteRepositoryUrl>
      </configuration>
    </plugin>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 22:05:01