1. 程式人生 > >maven學習筆記(三)倉庫

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配置