首页 > 其他分享 >如何配置极狐GitLab Maven 仓库

如何配置极狐GitLab Maven 仓库

时间:2024-03-08 10:45:23浏览次数:24  
标签:xml maven GitLab gitlab Maven 极狐

本文作者:徐晓伟

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。

极狐GitLab Maven 仓库

极狐GitLab Maven 私库使用方式

文档

  1. 软件包库中的 Maven 包

配置(以Maven为例)

  1. 身份认证(以下顺序为官方文档的顺序,选择一个适合自己的即可)

    1. 在 Maven 中使用个人访问令牌进行身份验证

      • settings.xml 文件中的配置如下
      <settings>
        <servers>
          <server>
            <!-- 固定值 -->
            <id>gitlab-maven</id>
            <configuration>
              <httpHeaders>
                <property>
                  <!-- 此方式的固定值,不可改 -->
                  <name>Private-Token</name>
                  <!-- 个人令牌,推荐在个人电脑上执行时使用(个人令牌需要 api 权限) -->
                  <value>REPLACE_WITH_YOUR_PERSONAL_ACCESS_TOKEN</value>
                </property>
              </httpHeaders>
            </configuration>
          </server>
        </servers>
      </settings>
      
    2. 在 Maven 中使用部署令牌进行身份验证

      • settings.xml 文件中的配置如下
      <settings>
        <servers>
          <server>
            <!-- 固定值 -->
            <id>gitlab-maven</id>
            <configuration>
              <httpHeaders>
                <property>
                  <!-- 此方式的固定值,不可改 -->
                  <name>Deploy-Token</name>
                  <!-- 部署令牌,推荐在不是 GitLab Runner 流水线时使用 -->
                  <!-- 在项目的仓库设置中可创建部署令牌,需要 read_package_registry、write_package_registry 权限 -->
                  <value>REPLACE_WITH_YOUR_DEPLOY_TOKEN</value>
                </property>
              </httpHeaders>
            </configuration>
          </server>
        </servers>
      </settings>
      
    3. 使用 Maven 中的 CI 作业令牌进行身份验证

      • settings.xml 文件中的配置如下
      • 此处使用的是 GitLab Runner 流水线发布 jar 包(其他方式发布时的命令雷同)
      • 示例项目 my-maven-app 中使用自定义 settings.xml 文件名为 settings.xml,并在其中增加了国内Maven仓库代理,用于加速依赖下载,发布命令
      • 仅发布二进制:mvn clean -U package deploy -DskipTests -s settings.xml
      • 发布二进制、源码:mvn clean -U package source:jar deploy -DskipTests -s settings.xml
      • 发布二进制、源码、javadoc: mvn clean -U package source:jar javadoc:jar deploy -DskipTests -s settings.xml
      <settings>
        <servers>
          <server>
            <!-- 固定值 -->
            <id>gitlab-maven</id>
            <configuration>
              <httpHeaders>
                <property>
                  <!-- 此方式的固定值,不可改 -->
                  <name>Job-Token</name>
                  <!-- 如果你使用的是 GitLab Runner 流水线发布项目,推荐使用此方式 -->
                  <!-- CI_JOB_TOKEN 是 GitLab Runner 流水线的环境变量 -->
                  <value>${CI_JOB_TOKEN}</value>
                </property>
              </httpHeaders>
            </configuration>
          </server>
        </servers>
      </settings>
      
  2. 项目级 Maven 端点(发布,仅在 GitLab Runner 流水线发布时可以使用环境变量)

    <distributionManagement>
        <repository>
            <!-- 固定值,与 settings.xml 中的 server id 相同,否则私有仓库无法匹配到秘钥发布 -->
            <id>gitlab-maven</id>
            <!-- 其中数字为项目ID,访问项目地址即可看到 -->
            <!--<url>https://gitlab.com/api/v4/projects/53229683/packages/maven</url>-->
            <!-- 使用环境变量 CI_PROJECT_ID 替换项目ID -->
            <!-- 使用环境变量 CI_API_V4_URL 替换 GitLab API 接口地址 -->
            <url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url>
        </repository>
        <snapshotRepository>
            <!-- 固定值,与 settings.xml 中的 server id 相同,否则私有仓库无法匹配到秘钥发布 -->
            <id>gitlab-maven</id>
            <!-- 其中数字为项目ID,访问项目地址即可看到 -->
            <!--<url>https://gitlab.com/api/v4/projects/53229683/packages/maven</url>-->
            <!-- 使用环境变量 CI_PROJECT_ID 替换项目ID -->
            <!-- 使用环境变量 CI_API_V4_URL 替换 GitLab API 接口地址 -->
            <url>${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven</url>
        </snapshotRepository>
    </distributionManagement>
    
  3. 项目级 Maven 端点(使用,不能使用环境变量) 使用已发布的 Maven jar 包

    
    <repositories>
        <repository>
            <!-- 与 settings.xml 中的 server id 相同,否则私有仓库无法匹配到秘钥发布 -->
            <id>gitlab-maven</id>
            <!-- https://gitlab.example.com:GitLab 实例的域名(IP),不能使用环境变量 -->
            <!-- PROJECT_ID:项目ID,访问需要使用的 Maven jar 包 仓库地址即可查看到项目ID -->
            <url>https://gitlab.example.com/api/v4/projects/PROJECT_ID/packages/maven</url>
        </repository>
    </repositories>
    
  4. 发布的Jar包可以在 软件包库 中看到

更多关于极狐GitLab 的最佳实践,请搜索关注【极狐GitLab】公众号或者登录极狐GitLab 官网进行学习。

标签:xml,maven,GitLab,gitlab,Maven,极狐
From: https://www.cnblogs.com/jihugitlab/p/18060491

相关文章

  • Maven常见指令
    Maven笔记Maven库https://mvnrepository.com/坐标groupid:公司或组织域名倒序​ com.ys.maven​ 识别资源的位置artifactid:模块名,也是实际项目的名称实例书写<!--pom.xml中--><dependency><groupId>junit</groupId><artifactId>junit</artifactId>......
  • Sonarqube 使用授权Gitlab账号登录 Sonarqube 手记
      Sonarqube使用授权Gitlab账号登录Sonarqube手记1、安装部署sonarqbue  参考:https://www.cnblogs.com/nb-blog/p/17988874 2、安装部署gitlab参考:https://www.cnblogs.com/nb-blog/p/17965971 我是通过k8s部署argocd 使用argocd进行的sonar......
  • 如何部署极狐GitLab Runner Cache 缓存配置?
    本文作者:徐晓伟GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。极狐GitLabRunnerCache缓存支持S3标准协议,如:OSS、OOS等等支持S3......
  • 从零开始搭建Springboot开发环境(Java8+Git+Maven+MySQL+Idea)之一步到位
    说明所谓万事开头难,对于初学Java和Springboot框架的小伙伴往往会花不少时间在开发环境搭建上面。究其原因其实还是不熟悉,作为在IT界摸爬滚打数年的老司机,对于各种开发环境搭建已经了然于胸,自己当年也是这么过来的。今天我就毕其功于一役,解放大家的时间,让凡人的环境配置见鬼去吧......
  • gitlab 私有化安装
    https://blog.csdn.net/weixin_53330763/article/details/128840251   【linux系统安装部署私有化的GitLab】环境准备劝退坑:服务器建议空余内存在3G以上,2G给gitlab安装,1G空余给服务器正常使用,亲测不够会导致服务器其他服务根本无法正常运行安装gitlab依赖yuminstall-y......
  • 关于Maven创建javaweb项目在配置Tomcat的问题(1)
    先将Maven项目转换成Java项目,确保没有架包没有报错和编译错误的情况下进行如下操作:打开Maven项目中的pom.xml文件,找到标签。查看里面是否配置元素,有则直接添加如下配置。org.codehaus.cargocargo-maven2-plugin1.7.6tomcat9xembedded如果没有,则先添加元素,然后再添加......
  • Maven安装本地的jar包和创建带模板的自定义项目
    Maven安装本地的jar包如果没配置Maven的环境变量,需要先CD到maven的安装目录,因为没配置环境变量,mvn命令是无法在maven安装目录以外的目录运行。cdC:\Maven\apache-maven-3.6.3\bin然后执行下面命令格式如下:mvninstall:install-file//固定格式,maven的语法-Dfile=ali......
  • docker启动gitlab 备份与恢复
    一、数据备份进入容器备份dockerexec-itgitlab/bin/bashgitlab-rakegitlab:backup:create或者一条命令dockerexecgitlabgitlab-rakegitlab:backup:create默认将备份文件保存至/var/opt/gitlab/backups/这条命令是在Docker容器内部执行GitLab的备份操作。......
  • 如何简洁高效的搭建一个SpringCloud2023的maven工程
    前言依赖管理有gradle和maven,在这里选择比较常用和方便的Maven作为工程项目和依赖管理工具来搭建SpringCloud实战工程。主要用到的maven管理方式是多模块和bom依赖管理。什么是maven的多模块依赖管理Maven多模块项目相对于单模块项目而言,依赖是不共享的,但父模块提供了全局共享......
  • 极狐GitLab Runner Kubernetes(k8s)配置
    GitLab是一个全球知名的一体化DevOps平台,很多人都通过私有化部署GitLab来进行源代码托管。极狐GitLab是GitLab在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。资料Kubernetes高级配置添加额外主机别名Pod的DNS配置极狐GitLabRunner......