如何配置.m2下Maven settings.xml全局使用GitLab Package Registry
全局Maven对接GitLab Package Registry实现方案
前置准备
- 提前创建GitLab个人访问令牌(PAT):仅拉取依赖勾选
read_package_registry权限,需推送私有包额外勾选write_package_registry权限 - 确认你的GitLab Package Registry访问地址:实例级全局地址格式为
https://<你的GitLab域名>/api/v4/packages/maven,组级私有地址格式为https://<你的GitLab域名>/api/v4/groups/<组ID>/-/packages/maven
全局settings.xml配置模板
将以下内容保存到用户目录下的.m2/settings.xml路径即可实现全局生效,无需在mvn命令后追加-s参数:
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd"> <!-- 配置GitLab访问认证信息 --> <servers> <server> <id>gitlab-maven</id> <username>你的GitLab用户名</username> <password>你创建的GitLab PAT</password> </server> </servers> <!-- 配置全局镜像,所有依赖请求走GitLab Package Registry --> <mirrors> <mirror> <id>gitlab-maven</id> <mirrorOf>*</mirrorOf> <url>替换为你自己的GitLab Package Registry地址</url> </mirror> </mirrors> <!-- 可选:配置私有仓库的拉取策略,无需单独在项目pom中声明 --> <profiles> <profile> <id>gitlab</id> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> <repository> <id>gitlab-maven</id> <url>替换为你自己的GitLab Package Registry地址</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </profile> </profiles> </settings>
注意事项
- 配置中
server节点的id必须和mirror、repository节点的id完全一致,否则会出现认证失败问题 - 如果需要保留部分公共源的访问路径,可调整
mirrorOf参数,例如改为*,!central即可排除Maven中央仓的请求走镜像 - 可在GitLab后台开启Package Registry的公共代理缓存功能,直接代理Maven中央仓、阿里云公共仓等公共源,无需本地配置多源
- 若团队统一使用CI流水线构建,可将PAT配置为GitLab CI/CD变量,无需在本地settings.xml中明文存储敏感信息
内容的提问来源于stack exchange,提问作者Herval NGANYA
相关产品推荐
相关产品推荐

