不能使用絕對路徑爲您父POM,配置條目的名稱本身是很自我解釋(相對路徑)。
從官方Maven model documentation該元素:
簽出中父pom.xml文件的相對路徑。如果未指定,則默認爲../pom.xml
。 Maven先在文件系統上的這個位置查找父POM,然後在本地存儲庫中查找,最後在遠程回購庫中查找。 relativePath
允許您選擇不同的位置,例如,當您的結構是平坦的,或更深時沒有中間父POM。但是,組ID,工件ID和版本仍然是必需的,並且必須與給定位置中的文件相匹配,否則它將恢復到POM的存儲庫。此功能僅用於增強該項目的本地結帳開發。將該值設置爲空字符串,以防止要禁用該功能並始終從存儲庫中解析父POM。
默認值爲:../pom.xml
。
你甚至不能使用一個快捷方式或符號鏈接,與每個模塊一起分發並指向絕對文件位置,它不會工作(並且你不應該使用這種技巧無論如何,即使它正在工作)。
甚至不能使用屬性作爲relativePath
元素的值佔位符。喜歡的東西:
<parent>
<groupId>framework.parent</groupId>
<artifactId>parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>${path.to.parent}</relativePath>
</parent>
並嘗試在編譯的時候喜歡把它注射:
mvn clean install -Dpath.to.parent=C:/somewhere/pom.xml
會根本沒有工作,也是由以下Maven票記載:
唯一合理的使用情況下對於該配置條目是,作爲正式文檔中提到的,對於平面結構的多模塊的項目,其中的模塊和父項目分別位於相同的目錄級別。
否則,更適合您的用例,您應該提供父pom作爲共享Maven存儲庫的一部分(如果有)或需要maven install
(以便它可在本地maven緩存中使用)在對子/模塊項目進行任何必需的maven操作之前,對於任何新版本都提前完成父項目。
絕對不要使用父級的絕對路徑,只要移除' ... relativePath>'元素。在你的父母上做一個'mvn install',它可以從你的本地回購庫中獲得,這意味着你不需要再定義relativePath .... –
khmarbaise