文章目录
- 远程仓库的配置
- 远程仓库的认证
- 部署至远程仓库
- 镜像配置
远程仓库的配置
Repositories元素下,可以用repository 子元素声明一个或者多个远程仓库。
- id 远程仓库的ID,必须唯一,maven自带的中央仓库的id为central,如果其他仓库声明也使用了该id,就会覆盖中央仓库的配置。
- name 仓库的名字,意义不大。
- url 仓库的地址,一般来说该值都是http协议。
- layout 仓库对应的布局,也就是之前我们说的本地仓库存储依赖的方式。
- snapshots 从仓库下载快照版本的控制。
- releases 从仓库下载releases 版本的控制。
- enabled 是否从仓库下载此版本,true为是,false为否。
- updatePolicy 配置Maven从远程仓库检查更新的频率,默认值为daily,表示每天检查一次;never——从不检查更新;always——每次构建都检查更新;interval:X——每个X分钟检查一次更新(X为任意整数)。
- checksumPolicy 配置Maven检查校验和文件的策略。也就是说我们在下载或者部署构件的时候,Maven会去验证检验文件。当值为 warn时,Maven会在执行构建时输出警告信息;fail-Maven ——遇到校验和错误让构件失败;ignore—— 是Maven完全忽略校验和错误。
远程仓库的认证
大多数情况下,远程仓库无需认证就可以访问。但是当我们组织内部有一个maven仓库服务器的时候,出去安全方面的考虑,就需要管理员为仓库提供一组用户名和密码。这时,我们为了让maven能够访问此服务器,就需要配置认证信息。
仓库信息和认证信息不同,仓库信息可以直接配置在pom文件中,但是认证信息必须配置在settings.xml 文件中。为什么会这样呢?因为我们在提交代码的时候会将项目的pom文件提交到代码仓,这样别人就可以获取到我们pom文件中的信息,而我们settings.xml 文件放在本地。因此,在settings.xml 中配置认证信息更为安全。
servers元素下可以声明多个server元素,在server中配置认证的信息
- id 是需要验证仓库的id,必须要与repository中的id对应(完全一致)。
- username 仓库认证的账号
- password 仓库认证的密码
部署至远程仓库
我们在日常的工作中,还需要一项功能,就是将我们的自己的构件部署至私服,供其他团队人员使用。这个时候,我们需要在项目的pom.xml 文件中进行配置。
distributionManagement 包含 repository 和snapshotsRepository 子元素,前者表示发布版本构件的仓库,后者表示快照版本的仓库。
- id 远程仓库的id,必须唯一。如果上传构件,需要验证的时候就会用到。
- name 远程仓库的名字,便于人阅读。
- url 远程仓库的地址。
如果上传构件的时候也需要认证的话,只需在settings.xml文件中配置service就行了。配置方式与下载一样。
镜像配置
镜像就相当于仓库的复制版,与原仓库的内容完全一致。一般情况下,由于地理位置的因数,镜像往往能够提供比中央仓库更快的服务。所以我们可以通过配置镜像来替代中央仓库,在settings.xml中进行配置。
** mirrors元素中声明多个mirror元素,在mirror元素中配置对应的镜像。关键在于 mirrorOf元素。**
- id 镜像的id,保证唯一。 如果镜像需要配置认证的话,同样在server中配置即可。
- name 镜像的名字
- url 镜像的地址。
- mirrorOf 需要被镜像的仓库的表达式。取值为:* ——匹配所有的远程仓库;external:* ——匹配所有远程仓库,使用localhost 的除外,使用file:// 协议的除外也就是说,匹配所有;central1,central2 ——匹配 central1,central2,使用逗号分隔多个远程仓库;*,! central1 —— 匹配所有的仓库,central 除外,使用感叹号将仓库从匹配中排除。