文章轉自http://blog.csdn.net/technologyboy/article/details/17143641
簡單點來說,repository就是個倉庫。maven里有兩種倉庫,本地倉庫和遠程倉庫。遠程倉庫相當於公共的倉庫,大家都能看到。本地倉庫是你本地的一個山寨版,只有你看的到,主要起緩存作用。當你向倉庫請求插件或依賴的時候,會先檢查本地倉庫里是否有。如果有則直接返回,否則會向遠程倉庫請求,並做緩存。你也可以把你做的東西上傳到本地倉庫給你本地自己用,或上傳到遠程倉庫,供大家使用。
遠程倉庫可以在工程的pom.xml文件里指定,樓上兩位已經列的很清楚了。如果沒指定,默認就會把下面這地方做遠程倉庫,即默認會到http://repo1.maven.org/maven2這個地方去請求插件和依賴包。
- <repository>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <id>central</id>
- <name>Maven Repository Switchboard</name>
- <url>http://repo1.maven.org/maven2</url>
- </repository>
本地倉庫默認在你本地的用戶目錄下的.m2/repository目錄下。
mirror就是鏡像,主要提供一個方便地切換遠程倉庫地址的途徑。比如,上班的時候在公司,用電信的網絡,連的是電信的倉庫。回到家后,是網通的網絡,我想連網通的倉庫,就可以通過mirror配置,統一把我工程里的倉庫地址都改成聯通的,而不用到具體工程配置文件里一個一個地改地址。
mirror的配置在.m2/settings.xml里。如:
- <mirrors>
- <mirror>
- <id>UK</id>
- <name>UK Central</name>
- <url>http://uk.maven.org/maven2</url>
- <mirrorOf>central</mirrorOf>
- </mirror>
- </mirrors>
這樣的話,就會給上面id為central的遠程倉庫做了個鏡像。以后向central這個倉庫發的請求都會發到http://uk.maven.org/maven2而不是http://repo1.maven.org/maven2了。
<mirrorOf>central</mirrorOf>里是要替代的倉庫的id。如果填*,就會替代所有倉庫。