2015-09-14 39 views
0

我有我公司父母pom在公司Nexus實例releases存儲庫。_remote.repositories防止maven解決遠程父母

我有鏡像設置<mirrorOf>external:*,!central</mirrorOf>,我不想代理中央,因爲我們的Nexus有點慢。

當我有一個Maven項目,與父母設置,如:

<parent> 
    <groupId>com.acme.maven</groupId> 
    <artifactId>parent-pom</artifactId> 
    <version>2</version> 
    <relativePath /> 
</parent> 

parent-pom項目是不是在本地存儲庫中的構建就會失敗 - 這是到目前爲止的預期。

但是如果我使用parent-pomdependency:get目標下載,POM的文件被下載到本地資源庫。然而,當我嘗試建立項目失敗有:

[exec] [ERROR] The project com.acme:test:0.0.1-SNAPSHOT (/home/acme/pom.xml) has 1 error 
[exec] [ERROR]  Non-resolvable parent POM: Failure to find com.acme.maven:parent-pom:pom:2 in http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced and 'parent.relativePath' points at no local POM @ line 5, column 13 -> [Help 2] 

現在,如果我刪除.m2/repository/com/acme/maven/parent-pom/2/_remote.repositories文件(只有該文件)生成會成功。

我有一種解決方法,但手動從maven存儲庫中刪除內部文件聽起來不是一個好主意。如何避免它? 另外我不知道爲什麼會發生這種情況,一些解釋將不勝感激。

其他方法:

  • Maven的Ant任務dependencies任務工作_remote.repositories文件不會出現在所有)
  • 試圖建立使用dependency:copy-U
  • 與失敗
  • 使用dependency:listpom.xmlparent-pom的依賴性也失敗

_remote.repositories內容:

#NOTE: This is an Aether internal implementation file, its format can be changed without prior notice. 
#Mon Sep 14 19:59:41 CEST 2015 
parent-pom-2.pom>internal-repo= 

回答

2

我想答案是here

的Maven 3.0+強制執行下載的文物是從一個解決 存儲庫網址/ ID匹配網址AV可用於當前的 會話。

..

IIRC還有就是你可以在Maven中啓用CLI選項3.1.1是 告訴Maven「我知道我在做什麼和不要做這樣的檢查這個 時間「即 --legacy本地存儲庫

確實增加--legacy-local-repositorydependency:get調用使得產生_remote.repositoriesparent-pom就可以解決。

螞蟻的dependencies任務行爲可以,我認爲,可以用它來解釋它使用Maven 2代碼。