Maven-09-核心概念 repositories

我們之前在 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 可參考這裡

    (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/artifactIdversion.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 管理

Facebook Comments