一、配置分级
首先需要了解的是Maven配置文件以及配置方式的分级,才能做到我们自己在日常开发配置中灵活使用。
根据Maven官方资料,Maven将配置文件分为两级:
- 用户层级
- 全局层级
Maven
在运行的时候会merge(合并)
用户层级和全局层级的配置。
Maven默认使用settings.xml
作为Maven的配置文件,对应的两个层级的配置文件的路径会在
1. Maven用户层级配置文件
用户层级
配置文件是提供给某个具体的用户,通常该配置文件路径为:
${user.home}/.m2/settings.xml
${user.home}
是指用户目录:
在Linux、Mac系统下这个路径代表~/
;在windows下是C:/Users/xxx
(xxx代表你的用户名)
如果需要指定某个配置文件,可以在运行mvn
时使用-s
传参:
-s ${path}/xxx.xml
2. Maven全局层级配置文件
全局层级
配置文件是给当前设备
所有用户公用的配置文件,通常该配置文件路径为:
${maven.conf}/settings.xml
${maven.conf}
是指Maven安装目录${maven.home}
下的conf
文件,在${maven.home}/bin/m2.conf
文件里面配置的。有兴趣的可以去到自己安装Maven的目录扒一扒相关的文件信息。
同样地,如果需要指定某个配置文件作为全局配置,可以在运行mvn
时使用-gs
传参:
-gs ${path}/xxx.xml
二、配置文件标签对
Maven的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 http://maven.apache.org/xsd/settings-1.0.0.xsd">
.....
.....
</settings>
三、本地仓库配置
Maven指定本地仓库路径,用localRepository
标签对:
<localRepository>/path/to/local/repo</localRepository>
没有配置的话,默认的目录是:${user.home}/.m2/repository
,也就是用户目录下的.m2
文件里面。这也是Windows朋友在C盘用户目录下为什么有个.m2
文件,而且还”那么占空间“。
四、指令模式(互动模式)
就是开启mvn
执行中用户控制,当Maven在执行中需要输入一些操作指令或者一些参数时,会让用户输入。这个互动模式默认开启true
。如果设置为false
,Maven会在执行的时候采取默认值
,这些默认值可能是已经有的,可能是链式默认值。配置方式如下:
<interactiveMode>true</interactiveMode>
默认开启的,我们就不用管了。
五、离线模式
这个很简单明了,官方翻译吧:确定maven在执行构建时是否应尝试连接到网络,这会对构件的下载、部署和其他操作产生影响。
默认是关闭的:false
配置方式如下:
<offline>false</offline>
六、Maven配置代理服务器
如果在使用Maven时需要指定代理服务器,则通过在proxies
代理服务器列表标签对里面配置服务器
在proxy
标签对里面配置对应的服务器信息,通过active
标签对激活配置好的代理:
<proxies>
<proxy>
<id>proxy-server-1</id>
<active>true</active>
<protocol>http</protocol>
<username>proxyuser</username>
<password>proxypass</password>
<host>proxy.host.net</host>
<port>80</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>