簡體   English   中英

Maven外部依賴

[英]Maven External Dependency

我需要在我的maven項目中添加大約15個jar,並且在遠程和中央存儲庫中均不可用。

但是,我實現了以下目標,

  1. 將罐子添加到我的項目路徑中(\\ src \\ lib)
  2. 如下更改pom,

     <dependency> <groupId>XXX</groupId> <artifactId>YYY</artifactId> <scope>system</scope> <version>8.1</version> <systemPath>${basedir}\\src\\lib\\YYY.jar</systemPath> </dependency> 

我的問題:

我是否需要像上面一樣分別對所有15個jar重復執行此操作,或者我們還有其他方法將這些jar綁定並使其成為一條依賴路徑?

Maven在這里討論了同一件事:指向多個jar的系統依賴項 但是我想知道我是否還能得到更好的/新的想法,因為這已經有5年的歷史了

Maven版本: 3.3.9

我認為您永遠不要使用systemPath

相反,請考慮按照以下說明將jars安裝到本地存儲庫中: https : //maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

Maven允許您通過手動調用在存儲庫中添加一個庫:

mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

這樣做,您的jar將安裝在您的.m2存儲庫中,並將作為模塊中的其他依賴項提供

編輯:我們可以補充一點,在與團隊合作時,我們通常使用自己的存儲庫管理器,例如Nexus( http://www.sonatype.org/nexus/ )或Artifactory( https://www.jfrog.com/open-source /

我建議使用Nexus之類的Maven Repository Manager(無論出於什么原因,還是推薦使用),並在其中托管您的第三方庫而不是某些VCS。

一旦上傳了JAR,就可以將它們作為常規依賴項進行引用。

要將它們作為系統范圍處理,您需要將每個jar添加為單獨的依賴項。

如果您對罐進行預處理和組合(作為一個罐),並給它們另一個Maven GAV坐標,例如“ XXX:MY-SUPER-JAR:1.0”,則可以將其指定為“單個”罐。 注意:我不建議這樣做,因為這是一種不良做法。

如Prim的回答所示,應避免使用系統范圍。 只需設置一個本地存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM