Maven的依賴範圍

  1. compile
    編譯依賴範圍.若是沒有指定,就會默認使用該依賴範圍.使用此依賴範圍的Maven依賴,對於編譯,測試,運行三種classpath都有效.
  2. test
    測試依賴範圍.使用此依賴範圍的Maven依賴,只對於測試classpath有效,在編譯主代碼或者運行項目時沒法使用此依賴.典型的如JUint
  3. provided
    已提供依賴範圍.使用此依賴範圍的Maven依賴,對於編譯和測試classpath有效,但在運行時無效.典型的如servlet-api.jar,jsp-api.jar,編譯和測試時須要它們,但在項目運行時,因爲Web容器已經提供,就不須要Maven重複引入.
  4. runtime
    運行時依賴範圍.使用此依賴範圍的Maven依賴,對於測試和運行classpath有效,但在編譯主代碼時無效.典型的如:數據庫驅動jar,項目在編譯時只須要JDK提供的JDBC接口.只有的執行測試或運行項目時才須要.
  5. system
    系統依賴範圍.使用此依賴範圍的Maven依賴,對於編譯和測試classpath有效,與provided一致.可是,它必須經過systemPath元素顯式地指定依賴文件的路徑 .因爲此類依賴不是經過Maven倉庫解析的,並且每每與本機系統綁定,可能形成構建的不可移植性.所以應謹慎使用.systemPath能夠引用環境變量,如
    <dependency>
        <groupId>javax.sql</groupId>
        <artifactId>jdbc-stdex</artifactId>
        <version>2.0</version>
        <scope>system</scope>
        <systemPath>${java.home}/lib/rt.jar</systemPath>
    </dependency>
  6. import 導入依賴範圍.該範圍不會對三種classpath產生實際影響.
相關文章
相關標籤/搜索