2013-10-23 23 views
1

我正在使用maven 3.1,我的項目繼承自第三方父pom。父pom有一個配置文件,因爲它引入了相互衝突的依賴關係,所以不能激活該配置文件。從父pom覆蓋配置文件依賴

爲了防止父母的配置文件踢入,我嘗試在子pom中定義一個帶有相同ID的「空」配置文件 - 希望它會覆蓋父配置文件中的配置文件,但這對我無效。

是否有可能,如果是的話,你如何覆蓋配置文件在父pom中引入的依賴關係?

+0

你爲什麼要繼承第三方家長pom?對於'dependencies','dependencyManagement'或'pluginManagement'部分?只有其中的一些,所有這些或其他什麼東西完全? – DB5

+0

所有這三個。 –

+0

這是一個恥辱。你可以將父項導入到你的pom的dependencyManagement部分,並在你的依賴項部分聲明一個依賴於父pom的' pom'作爲實現前兩部分的替代方法,但我不知道解決'pluginManagement'部分的問題。 – DB5

回答

2

您可以在命令行中顯式禁用配置文件,方法是將'!'在配置文件ID之前,例如

mvn -P !profileIdFromParent install 

更多關於在Maven docs中激活的配置文件。

+0

這看起來非常接近我想要的。如果可以完成在子POM中設置一個屬性,這將是相當可能的,所以我不必記住使用該-P命令行參數。此外,我的項目是多模塊pom的一部分。不幸的是,另一個模塊需要我想要爲我的子項目刪除的配置文件。 –

相關問題