maven 學習筆記

foreverwingsfly發表於2013-10-02

MAVEN的核心是pom.xml,pom定義了專案的基本資訊。

maven的座標:maven世界中擁有大量的構件,為每一個構件都定義了唯一的座標標識。

定義一個專案的基本座標,需要:

groupId(定義了專案隸屬的實際專案),

artifactId(定義了當前maven在組中的唯一id),

version(定義了當前專案的版本),(以上為必寫)

package(定義了打包方式)預設為Jar,(可選)

classifier(幫助定義構建輸出的一些附屬構件)(不可以直接定義)

scm 使用來to commit the modified sources  應該是用來獲取資源,更新版本的

extensions used for the transport of artifact between repositories, and plug-ins which provide lifecycle enhancements.


配置依賴:

groupId,artifactId,version

type:依賴的型別,對應於package,預設為Jar

scope:依賴的範圍

optional:標記依賴是否可選

exclusions:排除傳遞性依賴


依賴範圍:

編譯的時候用一套classpath(叫編譯classpath)

測試的時候用一套classpath(叫測試classpath)

執行的時候用一套classpath(叫執行classpath)

依賴範圍就是用來控制依賴與這三種範圍的關係:

compile 預設的範圍,對編譯,測試,依賴都有效

test 只對測試classpath有效

provided 對編譯和測試classpath有效

runtime對執行時classpath有效

system 系統依賴範圍,範圍和provided一樣,是根據本地系統繫結的,所有可移植性可能不會很好


傳遞依賴

當第二直接依賴為compile時,傳遞依賴範圍為第一依賴的範圍

當第二直接依賴為test時,依賴不會傳遞

當第二直接依賴為provided時,只會傳遞Privide依賴

當第二直接依賴為runtime時,傳遞依賴範圍為第一依賴的範圍


依賴調解:

1.路徑最近者優先

2.第一宣告者優先


可選依賴:

當2個依賴不可以共存的是,可用可選依賴

<optional>true<optional>

<optional>false<optional>








相關文章