将GitLab私有存储库添加为Maven依赖项

问题描述 投票:5回答:1

我在GitLab中有一个私有存储库(它在一个组中,我有一个Developer角色),我想将其添加为我的Maven项目的依赖项。

我一直在寻找一段时间,而我发现的只是我必须将以下内容添加到我的pom.xml中:

<repositories>
  <repository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/projects/.../packages/maven</url>
  </repository>
</repositories>

<distributionManagement>
  <repository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/projects/.../packages/maven</url>
  </repository>
  <snapshotRepository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/projects/.../packages/maven</url>
  </snapshotRepository>
</distributionManagement>

但是,我不知道如何添加依赖项本身(使用groupId和stuff),我不知道如何进行身份验证以允许Maven下载项目。我在GitLab中看到过有关个人访问令牌的内容,但我不确定如何设置(我假设我只需要只读访问权限?)。

java maven gitlab egit
1个回答
8
投票

首先,一些先决条件。由于您提到您正在使用私有存储库,因此您需要至少使用GitLab Silver(在gitlab.com上托管)或GitLab Premium(自托管)才能使用GitLab Maven Packages repository。此外,如果你是自我托管的,你需要在GitLab 11.3或更高版本(下周这个时候应该出去),并将packages_enabled设置为true(参见Enabling the Packages repository)。

对于私人项目,你需要一个Personal Access Token。令牌应具有Maven的api范围,以将工件上传到GitLab。获得令牌后,就像这样配置你的settings.xml

<settings>
  <servers>
    <server>
      <id>gitlab-maven</id>
      <configuration>
        <httpHeaders>
          <property>
            <name>Private-Token</name>
            <value>REPLACE_WITH_YOUR_PERSONAL_ACCESS_TOKEN</value>
          </property>
        </httpHeaders>
      </configuration>
    </server>
  </servers>
</settings>

pom.xml中,您有省略号,您需要填写项目ID。要查找ID,只需访问GitLab上项目的首页。它显示在页面顶部附近,紧跟在项目的名称和描述之后。例如,看看mvn-example示例项目。它的项目ID是8377576.这就在URL中。

<repositories>
  <repository>
    <id>gitlab-maven</id>
    <url>https://gitlab.com/api/v4/projects/8377576/packages/maven</url>
  </repository>
</repositories>

mvn-example project's pom.xml file展示了一个完整的例子。

完成所有设置后,您应该能够使用mvn deploy上传工件。

© www.soinside.com 2019 - 2024. All rights reserved.