maven依賴本地非repository中的jar包


依賴項的作用域

在定義項目的依賴項的時候,我們可以通過scope來指定該依賴項的作用范圍。scope的取值有compile、runtime、test、provided、system和import。

compile:這是依賴項的默認作用范圍,即當沒有指定依賴項的scope時默認使用compile。compile范圍內的依賴項在所有情況下都是有效的,包括運行、測試和編譯時。

runtime:表示該依賴項只有在運行時才是需要的,在編譯的時候不需要。這種類型的依賴項將在運行和test的類路徑下可以訪問。

test:表示該依賴項只對測試時有用,包括測試代碼的編譯和運行,對於正常的項目運行是沒有影響的。

provided:表示該依賴項將由JDK或者運行容器在運行時提供,也就是說由Maven提供的該依賴項我們只有在編譯和測試時才會用到,而在運行時將由JDK或者運行容器提供。

system:當scope為system時,表示該依賴項是我們自己提供的,不需要Maven到倉庫里面去找。指定scope為system需要與另一個屬性元素systemPath一起使用,它表示該依賴項在當前系統的位置,使用的是絕對路徑。比如官網給出了一個關於使用JDK的tools.jar的例子:

<project>
  ...
  <dependencies>
    <dependency>
      <groupId>sun.jdk</groupId>
      <artifactId>tools</artifactId>
      <version>1.5.0</version>
      <scope>system</scope>
      <systemPath>${java.home}/../lib/tools.jar</systemPath>
    </dependency>
  </dependencies>
  ...
</project>

 

<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.6</version>
      <scope>system</scope>
      <systemPath>D:\SC\WORK\coding\ea\ea-web/src/main/webapp/WEB-INF/lib/fastjson-1.2.6.jar</systemPath>
    </dependency>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM