一、配置文件
maven的配置文件主要有 settings.xml 和pom.xml 两个文件。
其中在maven安装目录下的settings.xml,如:D:\Program Files\apache-maven-3.6.3\conf\settings.xml 是全局配置文件 用户目录的.m2子目录下的settings.xml,如:C:\Users\chenxc.m2\settings.xml 配置只是针对当前用户的配置文件 项目根路径下的pom.xml主要是对当前项目的配置。
局部配置优先于全局配置。 配置优先级从高到低:pom.xml> user settings > global settings
二、settings.xml 配置详解
1、localRepository
该值是此构建系统的本地存储库的路径。默认值为 ${user.home}/.m2/repository。此元素对于主构建服务器特别有用,允许所有登录用户从公共本地存储库进行构建。
2、interactiveMode
表示是否可以和用户交互以获得输入,默认为true。
3、offline
表示此构建系统是否应在离线模式下运行,则默认为false。 此元素对于由于网络设置或安全原因而无法连接到远程存储库的构建服务器非常有用。
4、pluginGroups
插件组,该元素包含一个元素列表pluginGroup,每个元素包含一个groupId。当使用插件且命令行中未提供 groupId 时,将搜索该列表。该列表默认包含 org.apache.maven.plugins和org.codehaus.mojo。
如下,在pom文件中没有设置
5、servers
私服服务器配置,配置私服的用户名和密码。配置的私服服务器可以用来发布jar包,与pom 中 distributionManagement 标签中配置的仓库ID相互对应。
id :该id与
username、password:这两元素以一对形式出现,表示向该服务器进行身份验证所需的登录名和密码。 privateKey、passphrase:与前两个元素一样,指定了一个私钥位置(默认是${user.home}/.ssh/id_dsa)以及私钥密码(私钥密码可以没有)。将来
注意:如果您使用私钥
密码加密 2.1.0+ 中添加了一项新功能 - 服务器密码和密码加密。请参阅此页面的详细信息
6、mirrors
id , name:此镜像的唯一标识符和用户友好的名称。id用于区分镜像元素,并在连接到镜像时从
*匹配所有存储库 ID。external:*匹配除使用本地主机或基于文件的存储库之外的所有存储库。当您想要排除为集成测试定义的重定向存储库时,可以使用此选项。从 Maven 3.8.0 开始,external:http:*匹配除使用 localhost 之外的所有使用 HTTP 的存储库。可以使用逗号作为分隔符来指定多个存储库,如repo,repo1 = repo 或 repo1!可以与上述通配符之一结合使用以排除存储库 ID,如!repo1除 repo1 之外的所有内容
注意:给定存储库最多可以有一个镜像。换句话说,您无法将单个存储库映射到一组全部定义相同
7、proxies
id:该代理的唯一标识符。这用于区分
8、profiles
setting.xml文件中的
...
8.1、activation
...
activeByDefault:
name:操作系统的名字匹配则激活该
exists:如果指定的文件存在,则激活
注意:这多个激活条件的关系是这样的:Maven 3.2.2之前是只要满足其中之一就可以激活该
8.2、properties
对应
...
...
属性的值有五种不同的形式
env.X: 在一个变量前加上"env."的前缀,会返回一个shell环境变量。例如:env.PATH指代了$path环境变量(在Windows上是%PATH%)。project.x:指代了pom中对应的元素值。例如:
如果我们想在application.peoperties文件中引用这个user.install属性,这里注意引用时要用占位符@
user.install=@user.install@
在springboot工程中只能使用@xxx@(xxx为自定义的属性名)
8.3、repositories
远程仓库列表,它是Maven用来填充构建系统本地仓库所使用的一组远程仓库列表。
...
...
id、name:远程仓库唯一标识和远程仓库名称releases、snapshots:如何处理远程仓库里发布版本(releases)和快照版本(snapshots)的下载
enabled:true或者false表示该仓库是否开启下载某种类型构件(发布版,快照版)。updatePolicy:该元素指定更新发生的频率。Maven会比较本地pom 和远程pom 的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。checksumPolicy:当Maven验证构件校验文件失败时该怎么做-ignore(忽略),fail(失败),或者warn(警告)。 layout:在上面对存储库的描述中,提到它们都遵循通用布局。这基本上是正确的。Maven 2 的存储库有一个默认布局;然而,Maven 1.x 有不同的布局。使用此元素指定是default(默认)还是legacy(遗留)。
8.4、pluginRepositories
插件仓库, Maven plugins是一种特殊的依赖项,与普通的jar包依赖仓库分开定义,结构与repositories类似。具体说明参考如上。
...
...
9. activeProfiles
它包含一组
三、pom.xml配置文件:
四、远程仓库的加载
maven仓库依赖下载顺序:
在settings.xml文件中配置的本地仓库中寻找依赖,没找到则进入第2步。 在settings.xml文件中配置的全局远程仓库中寻找,没找到则进入第3步。 在当前项目的pom.xml中配置的远程仓库中寻找,如果没找到则进入第4步。 在中央仓库 https://repo.maven.apache.org/maven2 中寻找,如果没找到则抛出依赖无法加载异常。
好文链接
发表评论