我們之前在 Maven-04-建置專案 裡執行了 mvn install 指令,如果是初次執行的話,會發現 maven 會自動從遠端 repository 下載很多 plugin 相關的檔案,這些檔案會存放在本機個人目錄下 .m2/repository 資料夾裡。現在我們一起來了解有關 repository 更多資訊吧!
Maven 官方預設的遠端 repository 在 http://repo1.maven.org/maven2/ ,如果有需要的話,像是公司內部私有專案的需求, Maven 也支援自行架設的 repository,其中比較有名的像是:
只要修改 maven 安裝目錄下的 conf/settings.xml 就可以指向自行架設的 repository
Maven repository 儲存了大大小小專案的成品 (project artifact),其中的目錄結構完全符合我們先前介紹過的 Maven coordinates,大家可以試著從官方的 http://repo1.maven.org/maven2/ 來觀察,這邊以 hibernate-core 版本 5.1.0.Final 為例子來說明
- hibernate-core 版本 5.1.0.Final 的 coordinates 如下,完整 POM 可參考這裡
123<groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>5.1.0.Final</version>
(packaging 預設 為 jar) - jar 檔的完整路徑如下
http://repo1.maven.org/maven2/org/hibernate/hibernate-core/5.1.0.Final/hibernate-core-5.1.0.Final.jar - 路徑的組成,都遵照一定的格式
repository_location/groupId/artifactId/version/artifactId–version.packaging
Maven 從遠端下載的 project artifacts 會存在放本機 local repository 裡 (預設是 個人目錄 .m2/repository,也可以透過 settings.xml 修改),之後當有需要在專案裡引用這些 artifacts 時,Maven 就會直接參考 local repository 而不再從網路上尋找,順帶一提,local repository 裡面的資料夾結構,也和遠端 repository 一樣
mvn install 執行之後產生的project artifact,最後就會放置在 local repository 裡,這麼做的目的是日後可以供其它專案來參照引用。在下一篇,我們將為大家介紹對開發人員來說 Maven 最最最重要的功能 — dependency 管理