006_Maven仓库
1. Maven倉庫
1.1. 在Maven的術語中, 倉庫是一個位置(place)。
1.2. Maven倉庫是項目中依賴的第三方庫, 這個庫所在的位置叫做倉庫。
1.3. 在Maven中, 任何一個依賴、插件或者項目構建的輸出, 都可以稱之為構件。
1.4. Maven倉庫能幫助我們管理構件(主要是JAR), 它就是放置所有JAR文件(WAR, ZIP, POM等等)的地方。
1.5. Maven倉庫有三種類型:
- 本地(local)
- 中央(central)
- 遠程(remote)
2. 本地倉庫
2.1. Maven的本地倉庫, 在安裝Maven后并不會創建, 它是在第一次執行maven命令的時候才被創建。
2.2. 運行Maven的時候, Maven所需要的任何構件都是直接從本地倉庫獲取的。如果本地倉庫沒有, 它會首先嘗試從遠程倉庫下載構件至本地倉庫, 然后再使用本地倉庫的構件。
2.3. 默認情況下, 不管Linux還是Windows, 每個用戶在自己的用戶目錄下都有一個路徑名為.m2/repository/的倉庫目錄。
2.4. Maven本地倉庫默認被創建在%USER_HOME%目錄下。要修改默認位置, 在%MAVEN_HOME%/conf目錄中的Maven的settings.xml文件中定義另一個路徑。
3. 中央倉庫
3.1. Maven中央倉庫是由Maven社區提供的倉庫, 其中包含了大量常用的庫。
3.2. 中央倉庫包含了絕大多數流行的開源Java構件, 以及源碼、作者信息、SCM、信息、許可證信息等。一般來說, 簡單的Java項目依賴的構件都可以在這里下載到。
3.3. 中央倉庫的關鍵概念:
- 這個倉庫由Maven社區管理。
- 不需要配置。
- 需要通過網絡才能訪問。
3.4. Maven內置了一個中央倉庫地址, 訪問的url可以從%MAVEN_HOME%\lib\maven-model-builder-3.8.4.jar\org\apache\maven\model\pom-4.0.0.xml找到
?
?3.5. 訪問中央倉庫https://repo.maven.apache.org/maven2
4. 遠程倉庫(可以在企業內部局域網中使用)
4.1. 如果Maven在中央倉庫中也找不到依賴的文件, 它會停止構建過程并輸出錯誤信息到控制臺。為避免這種情況, Maven提供了遠程倉庫的概念, 它是開發人員自己定制倉庫, 包含了所需要的代碼庫或者其他工程中用到的jar文件。
4.2. 舉例說明, 使用下面的pom.xml, Maven將從遠程倉庫中下載該pom.xml中聲明的所依賴的(在中央倉庫中獲取不到的)文件。
5. 執行Maven構建命令時, Maven開始按照以下順序查找依賴的庫:
5.1. 步驟1: 在本地倉庫中搜索, 如果找不到, 執行步驟2, 如果找到了則執行其他操作。
5.2. 步驟2: 在中央倉庫中搜索, 如果找不到, 并且有一個或多個遠程倉庫已經設置, 則執行步驟4, 如果找到了則下載到本地倉庫中以備將來引用。
5.3. 步驟3: 如果遠程倉庫沒有被設置, Maven將簡單的停滯處理并拋出錯誤(無法找到依賴的文件)。
5.4. 步驟4: 在一個或多個遠程倉庫中搜索依賴的文件, 如果找到則下載到本地倉庫以備將來引用, 否則Maven將停止處理并拋出錯誤(無法找到依賴的文件)。
6. Maven引入外部依賴(不在倉庫中的jar包)
6.1. 新建一個名為MavenOutDependency的Java項目
?
6.2. 在MavenOutDependency的Java項目中創建一個名為MvnOutDpy.java的接口?
6.3. 右鍵MavenOutDependency項目——>Export...?
6.4. Java——>JAR file?
6.5. 選擇jar導出的位置——>Finish?
6.6. 在MavenWeb工程下, 新建一個lib文件夾, 拷貝MavenOutDependency1.0.0.jar到lib下?
6.7. 在pom.xml文件中添加依賴?
6.8. 創建CommonDB.java實現MvnOutDpy.java接口?
總結
以上是生活随笔為你收集整理的006_Maven仓库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 005_Maven POM
- 下一篇: 004_Maven构建生命周期