关于mirror与repository
最后更新:2024-05-23 14:51:32
|
状态:未完成
mirror是指maven配置文件setting.xml中配置的镜像,如
<settings> <mirrors> <mirror> <id>aliyun</id> <name>aliyun maven</name> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> </mirrors> </settings>repository是项目中pom.xml下配置的仓库,如
<project> <repositories> <repository> <id>ossrh</id> <url>http://oss.sonatype.org/content/repositories/snapshots/</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </project>
在没有配置镜像的情况下项目会从repository中配置的url服务器下载依赖
如果配置的镜,注意这里的mirrorOf是指当前镜像要代理哪些仓库,也就是说依赖不再从仓库配置的url上下载,而从镜像的url上下载.
mirrorOf我们经常配置是*是指代理所有的仓库,但有许多jar我们这个镜像上可以没有。所以配置成*会导致下载失败
mirrorOf的配置方式
*
匹配所有远程仓库。
external:*
匹配所有远程仓库,使用localhost的除外,使用file:// 协议的除外。也就是说,匹配所有不在本机上的远程仓库。
repo1,repo2
匹配仓库repo1和repo2,使用逗号分隔多个远程仓库。
*,!repo1
匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。
这里的repo1是指在pom中配置的repository.id
如上面配置的 ossrh 注意Maven自带的中央仓库使用的id为central,如果其他仓库声明也使用该id,就会覆盖中央仓库的配置。