Maven中scope依赖范围和依赖的传递性
生活随笔
收集整理的這篇文章主要介紹了
Maven中scope依赖范围和依赖的传递性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Maven中使用?scope?來指定當前包的依賴范圍和依賴的傳遞性。常見的可選值有:compile,?provided,?runtime,?test,?system?等。scope?主要是用在?pom.xml?文件中的依賴定義部分
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version><scope>provided</scope></dependency>compile?:為默認的依賴有效范圍。如果在定義依賴關系的時候,沒有明確指定依賴有效范圍的話,則默認采用該依賴有效范圍。此種依賴,在編譯、運行、測試時均有效。
provided?:在編譯、測試時有效,但是在運行時無效。例如:servlet-api,jsp-api運行項目時,容器已經提供,就不需要Maven重復地引入一遍了。
runtime?:在運行、測試時有效,但是在編譯代碼時無效。例如:JDBC驅動實現,項目代碼編譯只需要JDK提供的JDBC接口,只有在測試或運行項目時才需要實現上述接口的具體JDBC驅動。
test?:只在測試時有效,例如:JUnit。
system?:在編譯、測試時有效,但是在運行時無效。和provided的區別是,使用system范圍的依賴時必須通過systemPath元素顯式地指定依賴文件的路徑。由于此類依賴不是通過Maven倉庫解析的,而且往往與本機系統綁定,可能造成構建的不可移植,因此應該謹慎使用。systemPath元素可以引用環境變量。
?
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的Maven中scope依赖范围和依赖的传递性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在${}中为甚么采用@Param及多参数
- 下一篇: 如何判断一个常量是废弃常量,一个类是无用