Maven配置文件

Maven 在加载配置文件时,会先加载当前用户家目录下的 .m2/settings.xml 用户配置文件,然后再去加载 Maven 安装路径下的 conf/settings.xml 全局配置文件,并且用户配置文件中的配置项优先于全局配置文件中的配置项

在命令行中通过 -s 参数可以指定用户配置文件的路径,通过 -gs 参数可以指定全局配置文件的路径。

<?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">

</settings>

本地仓库

Maven 在搜索依赖库时,会先从本地仓库中查找,如果没有找到则会去远程仓库中查找,查找成功后会下载到本地仓库中。

<!-- 默认值为${user.home}/.m2/repository。 -->
<localRepository>D:\development\Java\maven_repository</localRepository>

控制联网

Maven 在下载和部署项目需要连接网络,可以在配置文件中关闭 Maven 的联网功能。

<!-- 是否下线,默认为false,也就是允许联网。 -->
<offline>true</offline>

代理配置

Maven 在选择代理时,会优先选择系统代理或命令行代理,如果没找到的话才会使用下面配置第一个激活的代理。

<!-- 用于配置代理列表。 -->
<proxies>
    <!-- 每一个proxy标签对应着一个代理配置。 -->
    <proxy>
        <!-- 代理的ID,必须要指定,并且必须唯一。 -->
        <id>local</id>
        <!-- 代理的地址,必须要指定。 -->
        <host>127.0.0.1</host>
        <!-- 代理的端口号,必须要指定。 -->
        <port>10809</port>
        <!-- 是否激活,默认为true。 -->
        <active>true</active>
        <!-- 连接代理时使用的通信协议,默认为http。 -->
        <protocol>http</protocol>
        <!-- 连接代理时使用的账号。 -->
        <username>zhang</username>
        <!-- 连接代理时使用的密码。 -->
        <password>123456</password>
        <!-- 不进行代理的主机地址,可以使用通配符,如果有多个则使用|来分隔。 -->
        <nonProxyHosts>localhost|*.internal</nonProxyHosts>
    </proxy>
</proxies>

通过以下命令可以设置当前终端的代理,设置的代理仅在本次终端有效。

set http_proxy=proxy.example.com:8080
set https_proxy=proxy.example.com:8080

远程仓库

Maven 在下载项目的依赖时,会去 POM 文件里定义的远程仓库中寻找并下载依赖。如果 POM 文件中没有定义任何的远程仓库,则会使用默认的中央仓库,该仓库的ID为 central,URL为 https://repo.maven.apache.org/maven2

<!-- 仓库列表,Maven会按顺序去寻找依赖并下载。 -->
<repositories>
    <!-- 定义一个仓库 -->
    <repository>
        <!-- 仓库的ID -->
        <id>my-repo</id>
        <!-- 仓库的URL -->
        <url>https://my-repo.com/maven</url>
    </repository>
</repositories>

Maven 在访问远程仓库前,会先去配置文件中查找有没有该仓库的镜像仓库,如果有的话则访问镜像仓库,而不是访问原始仓库。Maven 在匹配镜像仓库时,会根据当前仓库的 ID 去匹配。

<mirrors>
    <mirror>
        <!-- 当前镜像仓库的ID。 -->
        <id>aliyunmaven</id>
        <!-- 要镜像的仓库ID,如果有多个则用逗号分隔,也可以*来镜像所有仓库。 -->
        <mirrorOf>*</mirrorOf>
        <!-- 可选的,表示镜像仓库的名称。 -->
        <name>阿里云公共仓库</name>
        <!-- 镜像仓库的URL。 -->
        <url>https://maven.aliyun.com/repository/public</url>
    </mirror>
</mirrors>

在连接远程仓库时如果远程仓库需要认证信息,则 Maven 会根据该远程仓库的 ID 去配置文件寻找认证信息。

<mirrors>
    <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <name>nexus私服</name>
        <url>http://localhost:8081/repository/maven-central/</url>
    </mirror>
</mirrors>

<!-- 配置远程仓库的认证信息 -->
<servers>
    <server>
        <!-- 远程仓库的ID -->
        <id>nexus</id>
        <!-- 远程仓库的用户名 -->
        <username>admin</username>
        <!-- 远程仓库的密码 -->
        <password>admin</password>
    </server>
</servers>
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值