2017-08-21 21 views
1

我有一個父項目xxx-third,除了一個pom外,它還有一些聲明一些依賴關係和構建配置的項目。找不到父項目工件xxxxx:pom:2.0-SNAPSHOT

當我將它部署到nexus並且我可以在nexus web中找到它後,我將這個xxx-thrid聲明爲myProject的父項目。

Howerver,我仍然抱怨說找不到神器com.myCom:xxx-third:pom:2.0-SNAPSHOT @ com.myCom:myProject。

但是,如果我用代碼在本地安裝,問題將解決,這是煩人的!爲什麼以及如何解決它?

回答

0

這是因爲此工件位於本地計算機的本地.m2存儲庫中,但無法通過構建服務器從遠程存儲庫下載。 當地repostiory是路徑:

{USER_HOME}\.m2\repository\ 

您可以從本地資源庫複製所需的依賴到您的構建服務器上的本地倉庫,然後它會讀取來自本地回購,而不是從遠程獲取它的jar dependecy回購。

+0

??爲什麼?我已經將它部署到遠程服務器,並且我可以在遠程服務器中搜索它 – Jaskey

+0

「你爲什麼」的意思是什麼,你有什麼進展?這個文件在您的構建服務器上? –

+0

我已經將它部署到我的遠程倉庫,所以我應該能夠從倉庫下載它,但是我不能。複製確保作品,但它只是一個工作。 – Jaskey

0

您的父母POM未解決。有三個選項來解決這個問題:

1)父POM添加到你的本地庫

2)relativePath添加到您的孩子POM指向父POM(纔有意義,在一個多模塊項目其中source是在同一個存儲庫)

<parent> 
    <groupId>...</groupId> 
    <artifactId>...</artifactId> 
    <version>...</version> 
    <relativePath>...</relativePath> 
</parent> 

3)存儲庫配置添加到您的settings.xml(如有道理的,如果你有一個公司範圍內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"> 
    ... 
    <profiles> 
    <profile> 
     ... 
     <repositories> 
     ... 
     </repositories> 
     ... 
    </profile> 
    </profiles> 
    ... 

據我瞭解3)是你的解決方案。另請參閱: https://maven.apache.org/guides/introduction/introduction-to-the-pom.html https://maven.apache.org/settings.html