maven 配置 本地仓库 远程仓库 Repository
maven Settings 配置文档:https://maven.apache.org/ref/3.9.8/maven-settings/settings.html
1. maven Repository(仓库)分类
local repository
存放在maven所在机的本地磁盘的一个文件夹,默认是:{user-home}\.m2\repository目录
remote repository:相当于公共的仓库,有三种
中央仓库:http://repo1.maven.org/maven2/
私服:内网自建的maven repository,其URL是一个内部网址
其他公共仓库:其他可以互联网公共访问maven repository,例如 jboss repository等
2. 项目请求依赖过程
当向仓库请求插件或依赖的时候,会:
先检查local repository,如果local repository有则直接返回
否则会向 remote repository 请求,并缓存到local repository。
3. 镜像 mirrors(速度)
mirror相当于一个拦截器,它会拦截maven对 remote repository 的相关请求,把请求里的remote repository地址,重定向到 mirror里配置的地址。
配置镜像一般是出于访问速度和下载速度考虑。
<mirrors> <mirror> <id>ManaphyMirror</id> <mirrorOf>*</mirrorOf> <name>Manaphy Repository Mirror.</name> <url>http://192.168.2.132:8081/repository/maven-public/</url> </mirror> </mirrors>
id:用来区分不同的mirror元素
name:自定义镜像的名称描述信息
url:是该镜像的 URL
mirrorOf:是被镜像的 Repository 的id
<mirrorOf>central</mirrorOf>:Maven 中央仓库 http://repo1.maven.org/maven2 的镜像
<mirrorOf>*</mirrorOf>:匹配所有远程仓库
<mirrorOf>repo1,repo2</mirrorOf> :匹配仓库repo1和repo2,多个用逗号隔开
需要注意的是
由于镜像仓库完全屏蔽了被镜像仓库,当镜像仓库不稳定或者停止服务的时候,Maven将无法访问被镜像仓库,因而将无法下载构件。
4. 私有仓库 Repository
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。另外,对于自定义或第三方的jar可以从本地上传到私服,供局域网内其他maven用户使用。
当Maven需要下载构件的时候,
本地仓库没有
它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,
再为Maven的下载请求提供服务
<repositories> <repository> <id>jboss</id> <name>JBoss Repository</name> <url>http://repository.jboss.com/maven2/</url> <releases> <enabled>true</enabled> <updatePolicy>daily</updatePolicy><!-- never,always,interval n --> <checksumPolicy>warn</checksumPolicy><!-- fail,ignore --> </releases> <snapshots> <enabled>false</enabled> </snapshots> <layout>default</layout> </repository> </repositories>
id:仓库声明的唯一id
Maven自带的中央仓库使用的id为central,如果其他仓库声明也使用该id,就会覆盖中央仓库的配置。
name:自定义仓库的名称描述信息
url:指向了仓库的地址
一般来说,该地址都基于http协议,Maven用户都可以在浏览器中打开仓库地址浏览构件。
releases 和 snapshots:用来控制Maven对于发布版构件(稳定版)和快照版构件(开发测试版)的下载权限。
enabled: 开启下载权限
layout:default(默认值)表示仓库的布局是Maven2及Maven3的默认布局,而不是Maven1的布局。
releases 和 snapshots 还包含另外两个子元素updatePolicy和checksumPolicy。
updatePolicy:从远处仓库检查更新的频率。
daily(默认):每天检查一次;
never-从不检查更新;
always-每次构建都检查更新;
interval:X-每隔X分钟检查一次更新(X为任意整数)
checksumPolicy:用来配置Maven检查校验和文件的策略。如果校验和验证失败采取的策略
warn(默认)时,Maven会在执行构建时输出警告信息;
fail-Maven遇到校验和错误就让构建失败;
ignore-使Maven完全忽略校验和错误。
5. 认证 仓库
若 镜像或者私有仓库,需要认证,配置 setting.xml 中的 <server></server>
<servers> <server> <id>same with repository id in pom</id> <username>username</username> <password>pwd</password> </server> </servers>
id:镜像 或者 私有仓 的 id
共 0 条评论