<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 中