依赖范围
1、Maven因為執行一系列編譯、測試和部署運行等操作,在不同的操作下使用的classpath不同,依賴范圍就是用來控制依賴與三種 classpath(編譯classpath、測試classpath、運行classpath)的關系。
Maven有以下幾種依賴范圍:
compile:編譯依賴范圍(默認),使用此依賴范圍對于編譯、測試、運行三種 classpath 都有效,即在編譯、測試和運行的時候都要使用該依賴jar包;
test:測試依賴范圍,從字面意思就可以知道此依賴范圍只能用于測試classpath,而在編譯和運行項目時無法使用此類依賴,典型的是JUnit,它只用于編譯測試代碼和運行測試代碼的時候才需要;
provided:此依賴范圍,對于編譯和測試classpath有效,而對運行時無效;
runtime:運行時依賴范圍,對于測試和運行classpath有效,但是在編譯主代碼時無效,典型的就是JDBC驅動實現;
system:系統依賴范圍,使用system范圍的依賴時必須通過systemPath元素顯示地指定依賴文件的路徑,不依賴Maven倉庫解析,所以可能會造成建構的不可移植,謹慎使用。
eg:
<dependencies><dependency><groupId>javax.sql</groupId><artifactId>jdbc-stdext</artifactId><version>2.0</version><scope>system</scope><systemPath>${java.home}/lib/rt.jar</systemPath></dependency> <dependencies>import:導入依賴范圍。
2、依賴范圍不僅可以控制與三種classpath的關系,還對傳遞性依賴產生影響,依賴關系圖如下:
?
轉載自 http://blog.csdn.net/stypace/article/details/38440545
轉載于:https://www.cnblogs.com/leo100w/p/4019004.html
總結
- 上一篇: 通知传值(NSNotificationC
- 下一篇: 异步/同步、阻塞/非阻塞的理解