Maven3.0.4基礎原理分析

maven是一個項目構建和管理工具。它可以方便的進行代碼編譯、依賴管理和項目發佈等。

一句話概括其原理:採用遠程倉庫和本地倉庫以及核心的pom.xml方式,其中pom.xml中定義的jar文件從遠程倉庫下載到本地倉庫,同一版本的jar只需下載一次。

配置本地倉庫:

=>在maven的文件夾下的conf子目錄的下:

設置倉庫位置

提示:建議先將原setting文件拷貝一份,比如我就拷貝爲settings_home.xml,以便之後使用。


pom.xml文件解析:

<groupId>---項目名稱

<artifactId>---模塊名稱(建議用“項目名_模塊名”設置)

<version>---版本

<dependencies>

<dependency>......</dependency>

</dependencies>---依賴的包們


<dependency>......</dependency>中

1、需要配置<groupId>、<artifactId>、<version>這三項(必須要配置的),來確保唯一性。

2、配置<scope>屬性來聲明該依賴會在何時用到(有時編譯的時候需要而生成war包不需要)

 (1)、<scope>test</scope>-----編譯有效,在編譯、打包會用此依賴。

(1)、<scope>compile</scope>-----測試、編譯有效,編譯、打包不會用此依賴。

(1)、<scope>provided</scope>-----測試範圍有效,生成war包不會用此依賴(比如servlet-api)。

(1)、<scope>runtime</scope>-----運行有效,編譯不依賴。


一個模塊的基礎結構:

源代碼:src/main/java

源碼資源文件:src/main/resources

測試代碼:src/test/java

測試資源文件:src/test/resources

注意:這個結構可以以maven方式導入項目中哦。


maven中的聚合:

在實際開發中,如何將多個模塊進行一次編譯、打包、發佈呢?

需要在一個聚合項目(普通項目,只做聚合)中進行,只需要在聚合項目的pom.xml文件中加入

<packing>pom</packing>

<modules>

<module>../user-core</module>

<module>....../......</module>

</modules>

***若<packing>類型爲pom,<module>的值以pom爲主目錄的相對路徑哦


maven中的繼承:

類似於java的繼承概念,解決各個模塊中都依賴同樣的jar包,故提取成公共模塊。

在一個父模塊(普通項目,只做繼承)裏的maven的pom文件中定義了相關的常量、依賴、插件等。

子模塊的pom.xml文件中配置<parent>

<parent>

<groupId>XXXXXX</groupId>

<artifactId>user-parent</artifactId>

<version>0.1.1-SNAPSHOT</version>

<relativePath>../user-parent/pom.xml</relativePath> //父模塊路徑

</parent>

那麼問題來了,如果每個子模塊有繼承父模塊的依賴,有些不需要腫麼辦呢?

解決方式是:將父模塊的依賴<dependencies>用<dependencyManagement>包裹

這樣就可以在子模塊中選擇需要的依賴了,如果子模塊需要該依賴,只需要在<dependency>.

<groupId>---項目名稱(同父模塊的)

<artifactId>---模塊名稱(同父模塊的

這兩項,與父模塊形成一對一關係即可。



不知道我簡要概述的是否明白,還有eclipse部署maven、maven項目的部署發佈等詳細問題,可參考以下地址

http://download.csdn.net/detail/u013938465/8996365














發佈了23 篇原創文章 · 獲贊 62 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章