我有一個使用pom.xml文件完美運行的maven項目來獲取所需的jar文件。不幸的是,我連接的數據庫在mvnrepository上沒有任何jar文件。現在他們坐在Referenced Libraries文件夾中。Maven可以使用本地和遠程存儲庫嗎?
由於這些文件是專有的,我需要讓他們地方。我建立了Apache Archiva並添加了這些文件。
我可以讓我的項目pom文件引用遠程存儲庫和本地存儲庫嗎?
我有一個使用pom.xml文件完美運行的maven項目來獲取所需的jar文件。不幸的是,我連接的數據庫在mvnrepository上沒有任何jar文件。現在他們坐在Referenced Libraries文件夾中。Maven可以使用本地和遠程存儲庫嗎?
由於這些文件是專有的,我需要讓他們地方。我建立了Apache Archiva並添加了這些文件。
我可以讓我的項目pom文件引用遠程存儲庫和本地存儲庫嗎?
是的,你可以,這樣的事情:
<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>
我能得到我的項目POM文件同時引用遠程倉庫和本地倉庫?
這就是Maven的工作原理。首先在本地存儲庫中查找依賴關係,如果不存在,則將它們從遠程存儲庫下載到本地存儲庫。在這種情況下,您的第三方Jars需要安裝在本地存儲庫中,或者更好地部署到遠程存儲庫,以便其他開發人員可以使用它們。
理想你將部署使用一個倉庫管理像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存儲庫獲取依賴關係。
您還可以通過運行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。缺點是其他開發人員必須執行此步驟才能構建其項目。
這是如何解決OP的問題的?他的問題是第三方jar甚至不存在於任何倉庫(本地或遠程)中。 – manouti