Maven 项目使用多个 GitLab Package Registry
Maven project use multiple GitLab Package Registry
我正在尝试使用 GitLab Maven Package Registry 将 2 个 GitLab 项目(项目 a 和项目 b)设置为我的其他项目(项目 c)的远程 Maven 存储库。
现在我有 2 个 GitLab Maven 包注册表
- 项目 A -> id : 112233
- 项目 B -> id : 445566
所以,现在我需要在我的项目 C pom.xml 文件中设置注册表设置
我该怎么做,因为我们的 pom.xml 文件中不能有多个
<!--registry setup for project a-->
<repositories>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/112233/packages/maven</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/112233/packages/maven</url>
</repository>
<snapshotRepository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/112233/packages/maven</url>
</snapshotRepository>
</distributionManagement>
<!--registry setup for project b-->
<repositories>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/445566/packages/maven</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/445566/packages/maven</url>
</repository>
<snapshotRepository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/445566/packages/maven</url>
</snapshotRepository>
</distributionManagement>
如果项目A和B在同一组,那么你应该在项目C的pom.xml
中使用group-level Maven endpoint:
<repositories>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.example.com/api/v4/groups/GROUP_ID/-/packages/maven</url>
</repository>
</repositories>
否则,我想你应该能够为每个指定一个存储库:
<repositories>
<repository>
<id>gitlab-maven-a</id>
<url>https://gitlab.com/api/v4/projects/112233/packages/maven</url>
</repository>
<repository>
<id>gitlab-maven-b</id>
<url>https://gitlab.com/api/v4/projects/445566/packages/maven</url>
</repository>
</repositories>
/!\ 无论哪种情况,都不要忘记在 settings.xml
文件中设置 Maven authentication credentials(除非您的项目具有 public 可见性)。
更喜欢使用 CI_JOB_TOKEN.
我正在尝试使用 GitLab Maven Package Registry 将 2 个 GitLab 项目(项目 a 和项目 b)设置为我的其他项目(项目 c)的远程 Maven 存储库。
现在我有 2 个 GitLab Maven 包注册表
- 项目 A -> id : 112233
- 项目 B -> id : 445566
所以,现在我需要在我的项目 C pom.xml 文件中设置注册表设置
我该怎么做,因为我们的 pom.xml 文件中不能有多个
<!--registry setup for project a-->
<repositories>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/112233/packages/maven</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/112233/packages/maven</url>
</repository>
<snapshotRepository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/112233/packages/maven</url>
</snapshotRepository>
</distributionManagement>
<!--registry setup for project b-->
<repositories>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/445566/packages/maven</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/445566/packages/maven</url>
</repository>
<snapshotRepository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/445566/packages/maven</url>
</snapshotRepository>
</distributionManagement>
如果项目A和B在同一组,那么你应该在项目C的pom.xml
中使用group-level Maven endpoint:
<repositories>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.example.com/api/v4/groups/GROUP_ID/-/packages/maven</url>
</repository>
</repositories>
否则,我想你应该能够为每个指定一个存储库:
<repositories>
<repository>
<id>gitlab-maven-a</id>
<url>https://gitlab.com/api/v4/projects/112233/packages/maven</url>
</repository>
<repository>
<id>gitlab-maven-b</id>
<url>https://gitlab.com/api/v4/projects/445566/packages/maven</url>
</repository>
</repositories>
/!\ 无论哪种情况,都不要忘记在 settings.xml
文件中设置 Maven authentication credentials(除非您的项目具有 public 可见性)。
更喜欢使用 CI_JOB_TOKEN.