依賴關係範圍用於限制依賴關係的可傳遞性,並且還影響用於各種構建任務的類路徑。
六種可用作用域:
1、compile
默認作用域;在項目的所有類路徑中均可用,而且這些依賴項會傳播到依賴整個項目。
2、provided
和compile很相似,但表示您希望JDK或容器在運行時提供依賴關係,例如,在爲Java Enterprise Edition構建Web應用程序時,應將對Servlet API和相關Java EE API的依賴關係設置爲povided範圍,因爲Web容器也提供了這些類;
該作用域僅在編譯和測試類路徑上可用,並且不可傳遞。
3、runtime
運行期可用。它作用在運行時和測試類路徑中,但不在編譯類路徑中。
4、test
僅在測試路徑對編譯和執行階段可用。此範圍不是可傳遞的。
5、system
和provided很相似,除了必須提供顯式包含它的JAR。該artifact始終可用,並且不會在存儲庫中查找更新。
6、import
此範圍僅受<dependencyManagement>部分中類型爲pom的依賴項才支持;它在指定的POM的<dependencyManagement>部分中指示要用有效的依賴關係列表替換的依賴關係;由於它們已被替換,因此具有import範圍的依賴項實際上並不參與限制依賴項的可傳遞性。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${jackson.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
.....
官網說明:
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html