我在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中看到过有关个人访问令牌的内容,但我不确定如何设置(我假设我只需要只读访问权限?)。
首先,一些先决条件。由于您提到您正在使用私有存储库,因此您需要至少使用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
上传工件。