mvn deploy 的账户配置

Eave 2026.06.01

mvn deploy的账户配置主要在Maven的settings.xml文件中。其核心是<servers>标签,通过为仓库配置一个唯一的ID和对应的用户名/密码,实现安全认证。

一、核心配置

在Maven的settings.xml文件中找到<servers>标签,并添加一个<server>配置块。

文件位置通常在:${M2_HOME}/conf/settings.xml,或者${user.home}/.m2/settings.xml

配置如下:

<server>
    <!-- 这个 id 必须和你的 pom.xml 中仓库的 id 完全一致 -->
    <id>my-private-repo</id>
    <!-- 你的用户名 -->
    <username>your_username</username>
    <!-- 你的密码或访问令牌(建议使用加密后的密码) -->
    <password>your_password_or_token</password>
</server>

注意:在大多数现代DevOps平台(如 GitLab、GitHub、Nexus)上,<password>字段应填入访问令牌(Access Token/Personal Access Token),而不是你登录网页的账户密码。

二、添加HTTP头认证(如 GitLab)

某些仓库(如 GitLab)要求通过HTTP头传递令牌,配置方式如下:

<server>
    <id>gitlab-maven</id>
    <configuration>
        <httpHeaders>
            <property>
                <!-- 根据仓库类型填写 Private-Token 或 Deploy-Token -->
                <name>Private-Token</name>
                <value>你的访问令牌</value>
            </property>
        </httpHeaders>
    </configuration>
</server>

三、仓库匹配

settings.xml中的<id>需要和pom.xmldistributionManagement标签中的id匹配,Maven才能通过id找到对应账户。

<distributionManagement>
    <repository>
        <!-- 这里的 id 必须和 settings.xml 中 server 的 id 完全一致 -->
        <id>my-private-repo</id>
        <!-- 仓库的 URL -->
        <url>https://your-repo-server.com/repository/my-releases/</url>
    </repository>
</distributionManagement>

四、执行发布

配置完成后,在项目根目录下执行以下命令即可:

# 跳过测试并发布到仓库
mvn clean deploy -Dmaven.test.skip=true

五、配置镜像(Mirror)加速

如果希望通过私有仓库代理中央仓库(Central),需要在settings.xml文件中的<mirrors>标签中配置镜像:

<mirror>
    <id>aliyun-mirror</id>
    <name>Aliyun Mirror</name>
    <url>https://maven.aliyun.com/repository/public</url>
    <mirrorOf>central</mirrorOf> <!-- 拦截所有对中央仓库的请求 -->
</mirror>