Maven學習筆記二

POM

Project Object Model:項目的屬性、依賴、構建配置這些信息都被抽象到項目對象(POM)裏面。
POM組成
-項目基本信息:groupId:artifactiId:packaging:version
-構建環境
-POM關係
-構建設置

插件與目標

使用命令:pluginId:goalId,例如mvn archetypr:generate
常用插件
maven-archetype-plugins
maven-dependency-plugin
maven-help-plugin
maven-resources-plugin
maven-surefire-plugin:執行單元測試
jetty-maven-plugin:
maven-enforcer-plugin

項目的生命週期階段

maven中項目的生命週期是指項目的構建過程,它包含了一系列的有序的階段,而一個階段就是構建過程中的一個步驟。
插件目標可以綁定到生命週期階段上,一個生命週期階段可以綁定多個插件目標。

依賴管理

依賴範圍scope
compile(編譯範圍)
provided(已提供範圍)
runtime(運行時範圍)
test(測試範圍)
system(系統範圍)

倉庫依賴

存放所有依賴的倉庫,通過依賴目標的座標進行管理

maven倉庫

在Maven中,任何一個依賴、插件或者項目構建的輸出,都可以稱之爲構件
Maven在某個統一的位置存儲所有項目的共享的構件,這個統一的位置,我們就稱之爲倉庫。(倉庫就是存放依賴和插件的地方),任何的構件都有唯一的座標,Maven根據這個座標定義了構件在倉庫中的唯一存儲路徑。

分類:可分爲本地倉庫遠程倉庫,其中遠程倉庫又可分爲中央倉庫、私服、其他公共庫.

-本地倉庫

在本地安裝Maven後,在安裝目錄下settings.xml中配置本地倉庫地址

<settings>  
    <localRepository>D:\maven_new_repository</localRepository>  
</settings>  

-遠程倉庫
-中央倉庫

中央倉庫是默認的遠程倉庫,maven在安裝的時候,自帶的就是中央倉庫的配置。中央倉庫在超級POM中配置,所有的maven項目都會繼承超級POM

<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>

-私服

私服是一種特殊的遠程倉庫,它是架設在局域網內的倉庫服務,私服代理廣域網上的遠程倉庫,供局域網內的Maven用戶使用。當Maven需要下載構件的時候,它從私服請求,如果私服上不存在該構件,則從外部的遠程倉庫下載,緩存在私服上之後,再爲Maven的下載請求提供服務。我們還可以把一些無法從外部倉庫下載到的構件上傳到私服上。
當前主流的maven私服:
1.Apache的Archiva
2.JFrog的Artifactory
3.Sonatype的Nexus

遠程倉庫的配置

在pom.xml文件中< repositories>< / repositories>中可以配置多個遠程倉庫,有時我們要對遠程倉庫的訪問進行認證,一般將認證信息配置在settings.xml中,做如下配置,其中< id>< /id>必須與POM中需要認證的的repository元素的Id一致。
<servers>
<server>
<id>same with repository id in pom</id>
<username>username</username>
<password>pwd</password>
</server>
</servers>

如何將生成的項目部署到遠程倉庫

完成這項工作,也需要在POM中進行配置,這裏有新引入了一個元素:< distributionManagement>
distributionManagement包含了2個子元素:repository和snapshotRepository, 前者表示發佈版本構件的倉庫,後者表示快照版本的倉庫
這兩個元素都需要配置 id(該遠程倉庫的唯一標識),name,url(表示該倉庫的地址)
向遠程倉庫中部署構件,需要進行認證。配置如下:

<servers>
<server>
<id>same with repository id in pom</id>
<username>username</username>
<password>pwd</password>
</server>
</servers>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章