Maven添加本地依賴


在寫本文的時候先來說明一下maven依賴的各種范圍的意思

compile(編譯范圍)
       compile 是默認的范圍;如果沒有提供一個范圍,那該依賴的范圍就是編譯范圍。編譯范圍依賴在所有的classpath 中可用,同時它們也會被打包。
provided(已提供范圍)
       provided 依賴只有在當JDK 或者一個容器已提供該依賴之后才使用。例如,如果你開發了一個web 應用,你可能在編譯classpath 中需要可用的ServletAPI 來編譯一個servlet,但是你不會想要在打包好的WAR中包含這個ServletAPI;這個Servlet API JAR 由你的應用服務器或者servlet 容器提供。已提供范圍的依賴在編譯classpath(不是運行時)可用。它們不是傳遞性的,也不會被打包。
runtime(運行時范圍)
       runtime 依賴在運行和測試系統的時候需要,但在編譯的時候不需要。比如,你可能在編譯的時候只需要JDBC API JAR,而只有在運行的時候才需要JDBC驅動實現。
test(測試范圍)
       test 范圍依賴在一般的編譯和運行時都不需要,它們只有在測試編譯和測試運行階段可用。測試范圍依賴在之前的???中介紹過。
system(系統范圍)
       system 范圍依賴與provided 類似,但是你必須顯式的提供一個對於本地系統中JAR 文件的路徑。這么做是為了允許基於本地對象編譯,而這些對象是系統類庫的一部分。這樣的構件應該是一直可用的,Maven 也不會在倉庫中去尋找它。如果你將一個依賴范圍設置成系統范圍,你必須同時提供一個systemPath元素。注意該范圍是不推薦使用的(你應該一直盡量去從公共或定制的Maven倉庫中引用依賴)。

下面來介紹maven添加本地依賴(這幾個是jre/lib/ext下的jar包,在classpath下是沒有的)

[html]  view plain  copy
 
 print?
  1. <dependency>  
  2.             <groupId>dnsns</groupId>  
  3.             <artifactId>dnsns</artifactId>  
  4.             <version>1.0</version>  
  5.             <scope>system</scope>  
  6.             <systemPath>${project.basedir}/src/lib/dnsns.jar</systemPath>  
  7.         </dependency>  
  8.         <dependency>  
  9.             <groupId>localedata</groupId>  
  10.             <artifactId>localedata</artifactId>  
  11.             <version>1.0</version>  
  12.             <scope>system</scope>  
  13.             <systemPath>${project.basedir}/src/lib/localedata.jar</systemPath>  
  14.         </dependency>  
  15.         <dependency>  
  16.             <groupId>sunjce_provider</groupId>  
  17.             <artifactId>sunjce_provider</artifactId>  
  18.             <version>1.0</version>  
  19.             <scope>system</scope>  
  20.             <systemPath>${project.basedir}/src/lib/sunjce_provider.jar</systemPath>  
  21.         </dependency>  
  22.         <dependency>  
  23.             <groupId>sunpkcs11</groupId>  
  24.             <artifactId>sunpkcs11</artifactId>  
  25.             <version>1.0</version>  
  26.             <scope>system</scope>  
  27.             <systemPath>${project.basedir}/src/lib/sunpkcs11.jar</systemPath>  
  28.         </dependency>  

我把他們放在工程下的src/lib下面 所以是

[html]  view plain  copy
 
 print?
  1. ${project.basedir}/src/lib/sunpkcs11.jar  

當然我們也可以規定自己的路徑來實現依賴的引用


免責聲明!

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



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