maven學習筆記(三)倉庫
1本地倉庫
只有再本地倉庫的構件才能被maven專案使用。
2遠端倉庫
(1)中央倉庫是預設的遠端倉庫
maven安裝檔案自帶中央倉庫的配置。用解壓工具開啟$M2_HOME/lib/maven-model-builder-3.0.jar,訪問路徑org/apache/maven/model/pom-4.0.0.xml可以看到:
<repositories> <repository> <id>central</id> <name>Maven Repository Switchboard</name> <url>http://repo1.maven.org/maven2</url> <layout>default</layout><!-- 倉庫佈局 --> <snapshots> <enabled>false</enabled><!-- 不下載snapshot版本的構件 --> </snapshots> </repository> </repositories>
這個pom是所有maven專案都會繼承的超級pom
(2)其他公共庫
常見的有:Java.net Maven庫 http://download.java.net/maven/2/
JBoss Maven庫 http://repository.jboss.com/maven2/
有時預設中央倉庫無法滿足專案需求,需要配置另外一個遠端倉庫,在專案pom中增加
<repositories> <repository> <id>jboss</id> <name>Jboss Repository</name> <url>http://repository.jboss.com/maven2</url><!-- 倉庫地址 --> <releases><!-- 釋出版本 --> <enabled>true</enabled> <updatePolicy>daily</updatePolicy><!-- 從遠端倉庫檢查更新的頻率 --> <checksumPolicy>ignore</checksumPolicy><!-- 檢查檢驗和檔案的策略,在下載構件時會驗證校驗和檔案,warn(預設)——執行構件時輸出警告資訊,fail——遇到校驗和錯誤 就讓構件失敗,ignore——完全忽略校驗和錯誤 --> </releases> <snapshots><!-- 快照版本 --> <enabled>false</enabled><!-- 不下載snapshot版本的構件 --> </snapshots> <layout>default</layout><!-- 倉庫佈局 --> </repository> </repositories>
注意:倉庫宣告的id必須唯一,maven自帶的中央倉庫id為central如果其他倉庫也宣告該id,就會覆蓋中央倉庫的配置。
3私服
特殊的遠端倉庫,為節省頻寬和時間,區域網架設的私有倉庫伺服器,用其代理所有外部的遠端倉庫。還能部署內部專案(mvn clean install)供其他專案使用。
4配置遠端倉庫的認證
使訪問遠端倉庫(下載構件,部署構件等)需要提供認證資訊。
認證資訊必須配置在setting.xml中,為一個id為my-proj的倉庫配置認證資訊,setting.xml有如下配置:
<servers> <server> <id>my-proj</id><!-- 必須與要認證的repository id一致 --> <username>repo-user</username> <password>repo-pwd</password> </server> </servers>
5部署至遠端倉庫
專案的pom.xml
<distributionManagement>
<repository><!-- 釋出版本構件倉庫 -->
<id>proj-releases</id>
<name>Proj Release Repository</name>
<url>..</url>
</repository>
<snapshotRepository><!-- 快照版本構件倉庫 -->
<id>proj-snapshots</id>
<name>Proj Snapshot Repository</name>
<url>..</url>
</snapshotRepository>
</distributionManagement>
配置正確後,執行命令 mvn clean deploy,maven將專案構件部署到遠端倉庫,快照版本部署到快照版本遠端倉庫,釋出版本部署到釋出版本遠端倉庫。
6從倉庫解析依賴的機制
依賴的版本不是顯示的釋出版本構件,如:1.2,2.1-beta-1等,而是RELEASE或LATEST,SNAPSHOT,會從遠端倉庫讀取元資料groupId/artifactId/maven-metadata.xml,再將元資料與本地元資料合併,計算出真實版本值,然後基於這個真實值檢查和解析本地和遠端倉庫。
注意:倉庫元資料不是永遠正確的,有時發現無法解析某些構件或解析得到錯誤構件,有可能是元資料出錯,需要手工或使用工具(如Nexus)對其進行修復。
7映象
如果倉庫X可以提供倉庫Y儲存的所有內容,X就是Y的一個映象。如:http://maven.net.cn/content/groups/public/是中央倉庫再中國的映象,由於地理位置的因素,該映象往往能夠比中央倉庫提供更快的服務。
配置映象,在setting.xml檔案中
<mirrors>
<mirror>
<id>maven.net.cn</id>
<name>中央倉庫映象</name>
<url>http://maven.net.cn/content/groups/public/</url>
<mirrorOf>central</mirrorOf><!-- 表示中央倉庫的映象,任何對中央倉庫的請求都會轉至該映象 -->
</mirror>
</mirrors>
私服代理外部倉庫時,配置私服
<mirrors>
<mirror>
<id>internal-repository</id>
<name>Internal Repository Manager</name>
<url>..</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
注:mirrorOf
<mirrorOf>external:*</mirrorOf> <!-- 匹配所有不在本機上的遠端倉庫,使用localhost和file://協議的除外, -->
<mirrorOf>repo1,repo2</mirrorOf><!-- 匹配倉庫repo1,repo2,使用逗號分隔多個遠端倉庫 -->
<mirrorOf>*,! repo1</mirrorOf><!-- 匹配所有遠端倉庫,repo1除外,使用感嘆號將倉庫從匹配排除 -->
8獲取maven座標
相關推薦
maven學習筆記(三)倉庫
1本地倉庫 只有再本地倉庫的構件才能被maven專案使用。 2遠端倉庫 (1)中央倉庫是預設的遠端倉庫 maven安裝檔案自帶中央倉庫的配置。用解壓工具開啟$M2_HOME/lib/maven-model-builder-3.0.jar,訪問路徑org/apache/
Maven學習筆記(三)--構建maven專案
構建maven專案 mvn archetype:generate -DgroupId=com.janson.app -DartifactId=jansonTest -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMo
Maven學習筆記(三)—— 使用Maven自帶的功能建立Java和JavaWeb專案
一、使用Maven建立Java專案1、開啟命令視窗,輸入建立命令使用shift+右鍵單擊,選擇在此處選擇開啟命令視窗,輸入如下命令:mvn archetype:generate -DgroupId=com.mengfei.demo -DartifactId=MavenJava
JAVA學習筆記(三)
byte repl efi ber 時間 clas 區分大小寫 增強for size @SuppressWarnings("resource")是用來壓制資源泄露警告的。比如使用io類,最後沒有關閉。Set集合特點:1)無序,不隨機2)元素唯一3)沒下標註意:Collect
thinkphp5.0學習筆記(三)獲取信息,變量,綁定參數
名稱 自動識別 參數順序 query images 報錯 oca nds arc 1.構造函數: 控制器類必須繼承了\think\Controller類,才能使用: 方法_initialize 代碼: <?php namespace app\lian\control
最優化學習筆記(三)最速下降法
tex track enter water pos 最優 content 分享 clas 最優化學習筆記(三)最速下降法
python學習筆記(三)
list 內存 寫入 odin move 列表 付出 open ada 文件的操作一般分三步: 1、打開文件,獲取文件的指針(句柄) 2、通過指針(句柄)操作文件 3、關閉文件 現在有以下文件: 我們為愛還在學 學溝通的語言
Redis學習筆記(三)常用命令整理
mes ember nbsp end 插入 學習筆記 頻道 hash value Redis 常用命令 1.DEL key 刪除key2.EXISTS key 檢查key是否存在3.KEYS * 查看所有的key4.EXPIRE key seconds 設置key的過期時
Django 學習筆記(三)模板導入
文件 文件中 訪問 from lang sts class rom 網頁 本章內容是將一個html網頁放進模板中,並運行服務器將其展現出來。 平臺:windows平臺下Liunx子系統 目前的目錄: hello ├── manage.py ├── hello │ ├─
Git學習筆記(三)遠程庫(GitHub)協同開發,fork和忽略特殊文件
tex 情況 learn 多人 版本管理 獲得 logs 秘鑰 多個 遠程庫 遠程庫,通俗的講就是不再本地的git倉庫!他的工作方式和我們本地的一樣,但是要使用他就需要先建立連接! 遠程庫有兩種,一個是自己搭建的git服務器;另一種就是使用GitHub,這個網站就是
Maven學習筆記(一)
path maven構建 執行 使用 本地倉庫 install pack class文件 cti 清單一:1.項目主代碼一般情況放在src/main/java目錄下,無須額外的配置,Maven會直接尋找目錄找到項目主代碼。 2.Java類的包名應該與GroupId,
jQuery學習筆記(三)
對象 idt 命名空間 goto div hid 右鍵 func 切換 jQuery中的事件和動畫 jquery中的事件 加載DOM 兩者等價但有細微區別 $(document).ready(function(){//編寫代碼}) 在DOM完全就緒時就可以被調用。
《EFFECTIVEC++》學習筆記(三)
ict lsp alq list dict baidu vsr .com 學習筆記 REDIS%E6%BA%90%E7%A0%81%E5%89%96%E6%9E%90-DICT%E9%81%8D%E5%8E%86%E7%AE%97%E6%B3%95 http://mp3.
學習筆記(三)——數據庫命令的應用
cal 名稱 nbsp ges bsp tex 密碼 連接字符串 集合 學習筆記(三)——數據庫命令的應用 一、存儲過程 (一)基本概念 存儲過程就是固化SQL數據庫系統內部的SQL語句,這樣做的好處是可以提高執行效率,提高數據庫的安全性,減
Hibernate學習筆記(三) --- 映射枚舉類型
enume rto 希望 enum 類名 賦值 rom cart org 對於枚舉類型,不能通過org.hibernate.annotations.Type註解來簡單的映射對應的數據庫字段類型(除非自定義類型)。對此,Hibernate提供了javax.persis
C#可擴展編程之MEF學習筆記(三):導出類的方法和屬性(轉)
學習 說了 如何 mod ati dem ont num imp 前面說完了導入和導出的幾種方法,如果大家細心的話會註意到前面我們導出的都是類,那麽方法和屬性能不能導出呢???答案是肯定的,下面就來說下MEF是如何導出方法和屬性的。 還是前面的代碼,第二篇中已經提供了下
【轉載】.NET Remoting學習筆記(三)信道
star fig cati 服務端 pro net string spa 處理類型 目錄 .NET Remoting學習筆記(一)概念 .NET Remoting學習筆記(二)激活方式 .NET Remoting學習筆記(三)信道 參考:♂風車車.Net .NET Fra
python3學習筆記(三)多線程與多進程
ttr pid make start lee close gif 自己 oops 線程thread,庫threading 進程process,庫Process 使用起來方法跟其他語言相似,也不需要下載其他的庫,語言自帶的庫裏就有 1.多線程的例子 1 #coding=
Linux學習筆記(三) putty、xshell運用
mage puttygen init for 下載 mkdir shell org c11 上一節學習了centos7的靜態ip配置,今天學習使用putty和xshell遠程連接centos7一.首先來學習使用putty1.下載putty包 https://www.chi
Asp.net core 2.0.1 Razor 的使用學習筆記(三)
post 應用程序 新的 entity gin start 密碼強度 ice httponly ASP.net core 2.0.1 中 asp.net identity 2.0.1 的基本使用(二)—用戶賬戶及cookie配置 修改用戶賬戶及cookie配置