Maven依賴和倉庫:在上一篇總結中我們談到了Maven的一大功能就是管理依賴,那么什么事依賴,又如何存儲依賴,已經依賴存放在哪里呢?帶著這樣的問題,請看今天的總結。
坐標
1 .為了能自動化的解析任何一個java構件,Maven就必須將它們唯一標識,這就是依賴基礎的底層基礎----坐標
2.坐標是通過元素定義的,groupid,artifactid,version,packaging.classifier.
org.sonatype.nexus nexus-indexer2.0.0 jar
下面解釋一下各個坐標元素
Groupid(必選):定義當前maven項目隸屬的實際項目。(maven項目和實際項目不一定是一一對應的)
Groupid的表達方式與java包名的表達方式類似。
artifactid(必選):該元素定義實際項目中的一個maven項目(模塊)、實際項目名做前綴(方便尋找實際構件)
Version(必選):Maven項目當前所處的版本
Packaging:打包方式
classifier:定義構建輸出的一些附屬構件
依賴的配置
一個依賴可以包含如下一些元素
... ... ... ...... ... ... ... ...
groupId、artifactId、version:依賴的基本坐標。Maven根據坐標才能找到依賴。
type:依賴的類型,對應于項目坐標定義的packaging。默認為jar。
Scope:依賴的范圍。(控制依賴與三種classpath(編譯classpath、測試classpath、運行classpath)的關系)
compile:編譯,默認,對三種都有效。
test: 測試,只對測試有效,編譯運行無法使用此類依賴。(比如junit)
provided:已提供依賴范圍,對編譯測試有效,運行無效。(比如servlet-api)
runtime:運行時,對測試和運行有效。(比如JDBC驅動)
system:對編譯測試有效,不是通過Maven倉庫解析的。而且往往與本機系統綁定。構建不可移植
倉庫
任何一個構建都有唯一的坐標,根據這個坐標可以定義其在倉庫中的唯一存儲路徑,這便是maven的倉庫布局方式。maven倉庫基于簡單那文件系統存儲的,可方便定位。
本地倉庫
1.每個用戶在自己都有一個路徑為.m2\repository\的本地倉庫目錄(以.開頭的為隱藏文件夾)
2.自定義本地倉庫:
D:\java\repository\
3.一個構件只有在本地倉庫中之后,才能由其他Maven項目使用。
4.安裝到本地倉庫,在某項目中執行mvn Clean install。
(將項目的構建輸出文件安裝到本地倉庫。具體路徑根據坐標獲得)
遠程倉庫
1.當Maven無法從本地倉庫找到需要的構件的時候,就會從遠程倉庫中下載構件至本地倉庫。
2.每個用戶只有一個本地倉庫,但是可以配置多個遠程倉庫。
中央倉庫
1.一個默認的遠程倉庫。
2.包含了世界上絕大多數的開源java構件,以及相關信息。“開箱即用”
私服
1.局域網上的遠程倉庫
2.私服不存在,從外部遠程倉庫緩存到私服上。或者也能從本地上傳到私服供大家使用
私服的優點:1.節省外網帶寬 2.加速Maven構建 3.部署第三方構件 4.提高穩定性,增強控制。5.降低中央倉庫的負荷
遠程倉庫的配置
jboss JBOSS Repository http://repository.jboss.com/maven2 true false
1.在repositories元素下,可以使用repository子元素聲明一個或者多個遠程倉庫。
2. id----唯一。使用central會覆蓋中央倉庫。
3.url--倉庫的地址
4.releases----控制對發布版構件的下載(enabled為開啟)
5.snapshots----enabled為false表示關閉快照版本的下載
6.layout---默認布局
7.updatepolicy---配置從遠程倉庫檢查更新的頻率 ,默認"daily",never.always,interval
8.checksumPolicy:用來配置Maven檢查檢驗和文件的策略。 Warn---警告,fail 構建失敗,ingnore 忽略
遠程倉庫的認證
1.為了防止非法的倉庫訪問,管理員提供了一組用戶名和密碼,為了能讓Maven訪問倉庫內容,需要配置認證信息.
2.認證信息在settings.xml文件中。(Pom往往是被提交到代碼倉庫中供所有成員訪問,而setting.xml一般只放到本機,在其中配置認證信息更為安全。)
3.使用servers元素和server子元素配置倉庫認真信息。其中的id必須與pom中需要認證的倉庫id一致。
... ... my-proj repo-user repo-pwd
總結
坐標、依賴和倉庫是Maven的一些基本的概念,知道了這些概念就算是知道了Maven的大概,但是對于Maven的認識這才是剛剛起步,所以接下來的文章我們還會一起來學校Maven。
看文倉www.kanwencang.com網友整理上傳,為您提供最全的知識大全,期待您的分享,轉載請注明出處。
歡迎轉載:http://www.kanwencang.com/bangong/20170116/88694.html
文章列表