配置代理
HTTP代理
通过Maven配置代理用于转发部分或全部HTTP请求。
nonProxyHosts
设置接受通配符,并且每个不进行代理的主机都由|
分隔字符,这与JDK配置相同。
<settings>
...
<proxies>
<proxy>
<id>proxy1</id>
<active>true</active>
<protocol>http</protocol>
<host>proxy.example.com</host>
<port>8080</port>
<username>proxyuser</username>
<password>mypassword</password>
<nonProxyHosts>www.baidu.com|*.example.com</nonProxyHosts>
</proxy>
</proxies>
...
</settings>
scp代理
<settings>
...
<servers>
<server>
<id>repo1</id>
<username>代理用户名</username>
<!-- 其他选项:
<password>代理用户密码</password>
<privateKey>私钥存储位置</privateKey>
<passphrase>私钥密码</passphrase>
-->
</server>
...
</servers>
...
</settings>
HTTP代理
和SCP代理
的文件中的元素包含用于定义值的settings
元素,这些settings.xml
值以各种方式配置Maven执行,例如pom.xml
,但不应捆绑到任何特定项目或分发给用户。这些值包括本地存储库位置,备用远程存储库服务器和身份验证信息等。
settings.xml
文件可能存在两个位置:
- Maven自带配置:
${maven.home}/conf/settings.xml
- 用户的配置:
${user.home}/.m2/settings.xml
前者settings.xml
也称为全局设置,后者settings.xml
称为用户设置。如果两个文件都存在,则它们的内容将合并,其中用户特定的settings.xml
为主导。
提示:如果需要从头开始创建用户特定的设置,则最简单的方法是将全局设置从Maven安装复制到${user.home}/.m2
目录中。Maven的默认值settings.xml
是带有注释和示例的模板。
settings
模板:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<offline/>
<pluginGroups/>
<servers/>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>
settings.xml
的内容能被以下值替换
${user.home}
和所有其他系统属性 (这是从 Maven 3.0以后才被允许)${env.HOME}
等环境变量
注意:这个属性在配置文件中定义在settings.xml
中不能用于插值。