更改setting文件的mirror_setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联*...
一、先搞清楚mirrors,mirror,mirrorOf
簡單點來說,repository就是個倉庫。maven里有兩種倉庫,本地倉庫和遠程倉庫。遠程倉庫相當于公共的倉庫,大家都能看到。本地倉庫是你本地的一個山寨版,只有你看的到,主要起緩存作用。當你向倉庫請求插件或依賴的時候,會先檢查本地倉庫里是否有。如果有則直接返回,否則會向遠程倉庫請求,并做緩存。你也可以把你做的東西上傳到本地倉庫給你本地自己用,或上傳到遠程倉庫,供大家使用。遠程倉庫可以在工程的pom.xml文件里通過repositories、repository指定。如果沒指定,就會去maven的安裝目錄找setting.xml的mirror、mirrorOf,如果沒有設置,默認就會把下面這地方做遠程倉庫,即默認會到http://repo1.maven.org/maven2這個地方去請求插件和依賴包。
false
central
Maven Repository Switchboard
http://repo1.maven.org/maven2
本地倉庫默認在你本地的用戶目錄下的.m2/repository目錄下。
mirror就是鏡像,主要提供一個方便地切換遠程倉庫地址的途徑。比如,上班的時候在公司,用電信的網絡,連的是電信的倉庫。回到家后,是網通的網絡,我想連網通的倉庫,就可以通過mirror配置,統一把我工程里的倉庫地址都改成聯通的,而不用到具體工程配置文件里一個一個地改地址。
mirror的配置在settings.xml里。如:
UK
UK Central
http://uk.maven.org/maven2
central
這樣的話,就會給上面id為central的遠程倉庫做了個鏡像。以后向central這個倉庫發的請求都會發到http://uk.maven.org/maven2而不是http://repo1.maven.org/maven2了。central里是要替代的倉庫的id,這里就是會代替central的。如果填*,就會替代所有倉庫。
二、經典示例如下:
tomcat7
tomcat
tomcat
nexus-releases
admin
admin123
public_repo
nexus-releases
http://192.168.1.21:8081/nexus/content/groups/bigdata/
plugin_repo
nexus-plugin
http://repo.maven.apache.org/maven2
nexus
nexus-releases
http://nexus-releases
true
true
nexus-plugin
http://plugin_repo
true
true
nexus
activeProfiles中表示id:nexus的profile生效,nexus的profile又定義了2個repository,當id為nexus-releases的repository去下包時會找到mirrors(用mirrorOf中的值去關聯),用對應的mirror的中配置的url來代替repository配置的url去下載包,這就是他們對應的關系了activeProfiles---》repository---》mirrors,用mirrors中的url代替repository的url。也可以使用簡要配置,直接所有的東西都用私服地址來下載,那么mirrorOf應該配置成*(代表替換所有的)或者maven默認的repository地址(代表替換默認的)
public_repo
*
http://192.168.1.21:8081/nexus/content/groups/bigdata/
總結
以上是生活随笔為你收集整理的更改setting文件的mirror_setting.xml的mirror、mirrorOf和pom.xml的repositories、repository的关系关联*...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嘉丰外墙真实漆价格?
- 下一篇: 莱万特家居怎么样?