1. 程式人生 > >Maven學習筆記之十九:Maven倉庫(maven倉庫分類)

Maven學習筆記之十九:Maven倉庫(maven倉庫分類)



Maven倉庫(maven倉庫分類)
----------
對於maven來說,倉庫只分為兩類:本地倉庫和遠端倉庫當maven根據座標尋找構件的時候,它首先會檢視本地倉庫,如果本地倉庫存在此構件,則直接使用;如果本地倉庫不存在此構件,或者需要檢視是否有更新的構件版本,maven就會去遠端倉庫查詢,發現需要的構件之後,下載到本地倉庫再使用。如果本地倉庫和遠端倉庫都沒有需要的構件,maven就會報錯
在這個最基本分類的基礎上,還有必要介紹一些特殊的遠端倉庫。中央倉庫是maven核心自帶的遠端倉庫,它包含了絕大部分開源的構件。在預設配置下,當本地倉庫沒有maven需要的構件的時候,它就會嘗試從中央倉庫下載。私服是另一種特殊的遠端倉庫,為了節省頻寬和時間,應該在區域網內架設一個私有的倉庫伺服器,用其代理所有外部的遠端倉庫

內部的專案還能部署到私服上供其他專案使用。除了中央倉庫和私服,還有很多其他公開的遠端倉庫,常見的有java.net Maven庫(http://download.java.net/maven/2/)和jboss Maven庫(http://repository.jboss.com/maven2/)等。

1.本地倉庫
預設情況下,不管是在windows還是linux上,每個使用者在自己的使用者目錄下都有一個路徑名為.m2/repository/的倉庫目錄。有時候,因為某些原因(例如C盤空間不夠),使用者會想要自定義本地倉庫目錄地址。這時,可以編輯檔案~/.m2/settings.xml設定localRepository元素的值為想要的倉庫地址
。例如:

<settings>
	<localRepository>D:\java\repository\</localRepository>
</settings>

這樣,該使用者的本地倉庫地址就被設定成了 D:\java\repository\。需要注意的是,預設情況下,~/.m2/settings.xml檔案是不存在的,使用者需要從Maven安裝目錄複製$M2_HOME/conf/settings.xml檔案再進行編輯。
一個構件只有在本地倉庫中之後,才能由其他Maven專案使用,那麼構件如何進入到本地倉庫中呢?最常見的是依賴Maven從遠端倉庫下載到本地倉庫中。還有一種常見的情況是,將本地專案的構件安裝到Maven倉庫中。例如本地有兩個專案A和B,兩者都無法從遠端倉庫獲得,而同時A又依賴於B,為了能構建A,B就必須首先得以構建並安裝到本地倉庫中。為了安裝專案,我們可以在專案中執行: mvn clean install命令。Install外掛的install目標將專案的構建輸出檔案安裝到本地倉庫



2.遠端倉庫
安裝好Maven後,如果不執行任何Maven命令,本地倉庫目錄是不存在的。當用戶輸入第一條Maven命令之後,Maven才會建立本地倉庫,然後根據配置和需要,從遠端倉庫下載構件至本地倉庫。

3.中央倉庫
由於最原始的本地倉庫是空的,Maven必須知道至少一個可用的遠端倉庫,才能在執行Maven命令的時候下載到需要的構件。中央倉庫就是這樣一個預設的遠端倉庫,Maven的安裝檔案自帶了中央倉庫的配置。讀者可以使用解壓工具開啟jar檔案$M2_HOME/lib/maven-model-builder-3.0.jar(在Maven2中,jar檔案路徑類似於$M2_HOME/lib/maven-2.2.1-uber.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>
		</snapshots>
	</repository>
</repositories>

包含這段配置的檔案是所有Maven專案都會繼承的超級POM。這段配置使用id central對中央倉庫進行唯一標識,其名稱為Maven Repository Switchboard,它使用default倉庫佈局。最後需要注意的是snapshots元素,其子元素enabled的值為false,表示不從該中央倉庫下載快照版本的構件

4.私服
私服是一種特殊的遠端倉庫,它是架設在區域網內的倉庫服務,私服代理廣域網上的遠端倉庫,供區域網內的Maven使用者使用。當Maven需要下載構件的時候,它從私服請求,如果私服上不存在該構件,則從外部的遠端倉庫下載,快取在私服上之後,再為Maven的下載請求提供服務。此外,一些無法從外部倉庫下載到的構件也能從本地上傳到私服上供大家使用

相關推薦

Maven學習筆記Maven倉庫(maven倉庫分類)

 Maven倉庫(maven倉庫分類) ---------- 對於maven來說,倉庫只分為兩類:本地倉庫和遠端倉庫。當maven根據座標尋找構件的時候,它首先會檢視本地倉庫,如果本地倉庫存在此構件,則直接使用;如果本地倉庫不存在此構件,或者需要檢視是否有更新的構件版本

opencv學習筆記影象融合背景替換

以證件照為例,圖片中有大部分為背景,先用kmeans對影象進行分割,可以得到背景的標籤,然後將影象分為前景和背景兩部分,非背景的都當作前景,顯示kmeans分割後的影象dst,將原影象前景賦給dst, 背景都設為0,得到kmeans分割後的影象如下,可看到邊緣處有一些小藍邊,

Maven 學習筆記Maven倉庫(快照版本)

 Maven倉庫(快照版本) ---------- 在Maven的世界中,任何一個專案或者構件都必須有自己的版本。版本的值可能是1.0.0,1.3-alpha-4,2.0,2.1-SNAPSHOT或者2.1-20091214.221414-13。其中,1.0、1.3-a

kubernetes學習筆記kubernetes dashboard認證及分級授權

第一章、部署dashboard 作為Kubernetes的Web使用者介面,使用者可以通過Dashboard在Kubernetes叢集中部署容器化的應用,對應用進行問題處理和管理,並對叢集本身進行管理。通過Dashboard,使用者可以檢視叢集中應用的執行情況,同時也能夠基於Dashboard建立或修

opencv學習筆記SIFT特徵點檢測與匹配

SIFT(Scale-invariant feature transform)是一種檢測區域性特徵的演算法,該演算法通過求一幅圖中的特徵點(interest points,or corner points)及其有關scale 和 orientation 的描述子得到特徵並進行

opencv學習筆記視訊讀寫

 VideoCapture:視訊抓取的類 VideoWriter :寫視訊的類 fps(frame per second)幀率:每秒抓取顯示多少幀 #include<opencv2\opencv.hpp> using namespace cv; int m

opencv學習筆記基於距離變換和區域性自適應閾值的物件計數

案例背景:統計下圖中玉米粒的個數 方案思路:先灰度化,再二值化(基於THRESH_TRIANGLE,圖中直方圖有明顯的雙峰值),腐蝕去掉一些小雜點,距離變換,再自適應區域性閾值,膨脹連成連通域,尋找輪廓進行計數。 距離變換於1966年被學者首次提出,目前已被廣泛應

kubernetes學習筆記資源指標API及自定義指標API

第一章、前言 以前是用heapster來收集資源指標才能看,現在heapster要廢棄了從1.8以後引入了資源api指標監視 資源指標:metrics-server(核心指標) 自定義指標:prometheus,k8s-prometheus-adapter(將Prometheus採集的資料轉換為指

Java Web 學習筆記JBoss RestEasy處理跨域OPTIONS請求方式

跨域請求問題 前提 前後端分離的B/S架構系統 前後端獨立開發,後端採用JBoss restEasy 框架搭建restful服務 後端程式碼開發完成並且部署在某一臺測試機上 前端開發過程中,需

Java Web 學習筆記RestEasy統一處理異常

JBoss RestEasy框架配置異常統一處理 前提 利用JBoss restEasy框架搭建的restful java web後臺應用 希望通過統一的方式對restful介面丟擲的異常進行

《Javascript權威指南》學習筆記JavaScript內建類

    前面的幾篇博文分別介紹了物件、字串、陣列、日期等內建類,本篇將介紹Boolean/Math/Function/Arguments類 一、使用Boolean類處理邏輯值     Boolean

kubernetes學習筆記helm入門

1.Helm的簡介 Helm是Kubernetes的一個包管理工具,用來簡化Kubernetes應用的部署和管理。可以把Helm比作CentOS的yum工具。 Helm有如下幾個基本概念: Chart: 是Helm管理的安裝包,裡面包含需要部署的安裝包資源。可以把Chart比作CentOS yum使

Java Web 學習筆記RestEasy新增Filter過濾器預處理請求

RestEasy新增Filter過濾器預處理請求 前提 定義filter過濾器,預處理http請求 在resteasy框架下配置filter 實現功能 攔截http請求,獲取請求頭中的

C#回顧學習筆記事務

1)事務是什麼? 事務是保證多個操作全部成功時才認為是一次有效操作,當有一個操作失敗時就會認為全部操作無效,並且回到執行操作之前的狀態只有資料改變時(增加、修改、刪除)時才會引發事務,查詢不會引發事務。如果在寫入一個記錄時出現失敗,則事務會讓其他已經寫入的資料回滾,讓資料

Linux運維學習筆記LNMP的WEB架構深度優化效能優化

第二十七章LNMP的WEB架構深度優化之效能優化 一、Nginx效能優化-配置Nginx的worker程序個數 1、worker的作用和初始設定 worker_processes就是worker角色的程序個數,也就是nginx啟動後有多少個worker處理http請求。ma

《Javascript權威指南》學習筆記BOM新成就(1)--client存儲數據(Storage實現)

globals 機制 ng- url new onclick views watermark -c 版權聲明:本文為博主原創文章。未經博主同意不得轉載。 https://blog.csdn

機器學習筆記TensorFlow實戰一(多執行緒輸入資料)

1 - 引言 為了加速模型訓練的時間,TensorFlow提供了一套多執行緒處理輸入資料的框架。 下面我們來詳細的介紹如何使用多執行緒來加速我們的模型訓練速度 2 - 佇列與多執行緒 在TensorFlow中,佇列和變數類似,我們可以修改它們的狀態。下面給出一個示例來展示如

學習筆記第二動態Dp

正題       因為NOIP2018考了這一個東西,所以不得不學。       我們以這一題為例題來引入今天的學習:【模板】動態dp       我們顯然可以用樹形Dp去做,倒不如我們先把方程

opencv學習筆記人臉識別演算法EigenFace

簡要: 特徵臉演算法是將影象每一個畫素當作一維特徵,然後用SVM或其它機器學習演算法進行訓練。但這樣維數太多,根本無法計算。我這裡用的是ORL人臉資料庫,英國劍橋實驗室拍攝的,有40位志願者的人臉,在不同表情不同光照下每位志願者拍攝10張,共有400張圖片,大小為112*9

javaweb學習筆記連線池

目錄 1.連線池概念 資料庫連線池(Connection pooling)是程式啟動時建立足夠的資料庫連線,並將這些連線組成一個連線池,由程式動態地對池中的連線進行申請,使用,釋放。 資料庫連線池的基本思想就是為資料庫連線建立一個“緩衝池”。預先在緩衝池