maven依賴範圍scope

<scope>標籤限定pom的依賴範圍

依賴的範圍就是控制依賴<dependency>和三種classpath的關係

maven提供了三種class path:

1. 編譯 2.測試 3.運行 三種class path5

 

這張圖中junit的scope是test ,表明junit只存在於測試的class path中。

 

一共有6種scope範圍:

1 .compile: 默認的scope,編譯測試運行都有效。

2 . provided:在編譯和測試時有效。在運行時不會被加入。比如:構建Java應用時我們可能會添加對servlet的依賴,此時就需要設置scope範圍爲provided。對於servlet API接口,Java應用運行時並不會使用這個依賴,因爲web容器提供了servlet的API,加入進去會導致衝突。

3 .runtime:在測試和運行時有效,eg:項目主代碼的編譯只需jdk提供的JDBC API 。準備測試或者運行程序時,才需要jdbc接口的具體實現。

4 . test :只在測試時有效

5. system:與本機系統相關聯,可移植性差。比如我們要引用本機的Java HOME系統變量,如果移植到其他系統上面,可能無法識別出正確的路徑。其他和provided相似,在測試和編譯時有效。

6. import :導入的依賴範圍,它只用在<dependencyManagement>標籤中,表示從其他pom文件中繼承過來的依賴。

如下圖所示:(沒找到原文檔,有點模糊)

這裏 表示將A中的依賴導入到projectB 中

 

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