2016-11-28 117 views
1

我有一個使用pom.xml文件完美運行的maven項目來獲取所需的jar文件。不幸的是,我連接的數據庫在mvnrepository上沒有任何jar文件。現在他們坐在Referenced Libraries文件夾中。Maven可以使用本地和遠程存儲庫嗎?

enter image description here

由於這些文件是專有的,我需要讓他們地方。我建立了Apache Archiva並添加了這些文件。

我可以讓我的項目pom文件引用遠程存儲庫和本地存儲庫嗎?

回答

2

是的,你可以,這樣的事情:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 
          https://maven.apache.org/xsd/settings-1.0.0.xsd"> 
     <localRepository/> 
     <interactiveMode/> 
     <usePluginRegistry/> 
     <offline/> 
     <pluginGroups/> 
     <servers/> 
     <mirrors/> 
     <proxies/> 
     <profiles/> 
     <activeProfiles/> 
    </settings> 

,詳細瞭解這一點,你可以查看here

你也可以看看這個article

用下面的配置就可以實現它:

<localRepository>/dev/m2repo</localRepository> 
+0

這是如何解決OP的問題的?他的問題是第三方jar甚至不存在於任何倉庫(本地或遠程)中。 – manouti

2

我能得到我的項目POM文件同時引用遠程倉庫和本地倉庫?

這就是Maven的工作原理。首先在本地存儲庫中查找依賴關係,如果不存在,則將它們從遠程存儲庫下載到本地存儲庫。在這種情況下,您的第三方Jars需要安裝在本地存儲庫中,或者更好地部署到遠程存儲庫,以便其他開發人員可以使用它們。

  1. 理想你將部署使用一個倉庫管理像Sonatype的的Nexus這些第三方庫到遠程倉庫。如果您使用的是Nexus存儲庫管理器,請參閱https://books.sonatype.com/nexus-book/reference/using-sect-uploading.html瞭解如何執行此操作。這將適用於您的確切場景,因爲鏈接頁面描述如下:

    當您的構建使用專有或自定義依賴項時,您通常需要找到一種方法使其可用給定製Maven存儲庫中的開發人員。 Nexus Repository Manager Pro和Nexus Repository Manager OSS附帶預配置的第三方存儲庫,用於存放構建中使用的第三方依賴項。

    這也可以使用maven-deploy-plugin來完成,但需要您在pom.xml中配置目標存儲庫,如文檔中所述。

    編輯:

    你提到使用Apache Archiva這也是一個倉庫管理器,使您可以部署文物的倉庫。 https://archiva.apache.org/docs/2.2.1/userguide/deploy.html解釋瞭如何做到這一點。 https://archiva.apache.org/docs/2.2.1/userguide/using-repository.html解釋瞭如何配置Maven以從Archiva存儲庫獲取依賴關係。

  2. 您還可以通過運行maven-install-plugin安裝庫僅向本地資源庫:

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

    https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html。缺點是其他開發人員必須執行此步驟才能構建其項目。

相關問題