- pom文件定義了遠(yuǎn)程倉(cāng)庫(kù)位置
<repositories>
<repository>
<id>maven-net-cn</id>
<name>Maven China Mirror</name>
<url>http://maven.net.cn/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-net-cn</id>
<name>Maven China Mirror</name>
<url>http://maven.net.cn/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
則maven會(huì)去pom中定義的url拉去依賴(lài),正常的依賴(lài)去repository中拉取,插件依賴(lài)去pluginRepository拉取,如果沒(méi)有定義pluginRepository,則插件依賴(lài)去repository中拉取。這兩種,去對(duì)應(yīng)倉(cāng)庫(kù)找不到的情況下,會(huì)去maven的中心倉(cāng)庫(kù)找
pom中的定義只針對(duì)該項(xiàng)目。
- settings.xml文件定義了遠(yuǎn)程倉(cāng)庫(kù)位置
<profiles>
<profile>
<id>test</id>
<repositories>
<repositories />
<pluginRepositories>
<pluginRepositories />
</profile>
</profiles>
則maven會(huì)去對(duì)應(yīng)repositories的位置拉取依賴(lài),如果同時(shí)配置了settings.xml和pom.xml,則先去pom找,找不到再去settings.xml配置的url找?,再找不到去maven的中心倉(cāng)庫(kù)找
settings.xml定義鏡像
<mirrors>
<mirror>
<id>maven-net-cn</id>
<name>Maven China Mirror</name>
<url>http://maven.net.cn/content/groups/public/</url>
<mirrorOf>maven-net-cn</mirrorOf>
</mirror>
</mirrors>
<mirrorOf>maven-net-cn</mirrorOf>
會(huì)過(guò)濾上面pom或settings配置id為maven-net-cn的遠(yuǎn)程倉(cāng)庫(kù), maven不訪問(wèn) id為maven-net-cn配置的倉(cāng)庫(kù),轉(zhuǎn)為訪問(wèn)mirror中配置的url,找不到再去maven中心倉(cāng)庫(kù)找?
如果
<mirrorOf>central</mirrorOf>
過(guò)濾中心倉(cāng)庫(kù)
<mirrorOf>*</mirrorOf>
過(guò)濾所有倉(cāng)庫(kù)
如果有多個(gè)mirror配置
<mirrors>
<mirror>
<id>maven-net-cn1</id>
<name>Maven China Mirror1</name>
<url>http://maven.net.cn/content/groups/public2/</url>
<mirrorOf>*</mirrorOf>
</mirror>
<mirror>
<id>maven-net-c2</id>
<name>Maven China Mirror2</name>
<url>http://maven.net.cn/content/groups/public2/</url>
<mirrorOf>maven-net-cn</mirrorOf>
</mirror>
</mirrors>
則按順序匹配第一個(gè),匹配到后但是找不到依賴(lài),不再往下匹配,類(lèi)似switch case
如上,所有的倉(cāng)庫(kù)訪問(wèn)都會(huì)被<mirrorOf>*</mirrorOf>過(guò)濾,<mirrorOf>maven-net-cn</mirrorOf>實(shí)際上不起作用