2011-09-09 71 views
3

我使用類似this question.的接受答案中描述的第一個項目佈局如果我的parent-pom與我的項目POM分開管理,構建和部署,我如何確保我的父-POM的pluginManagement部分有效?如何在Maven中驗證我的父POM的pluginManagement部分?

Maven只檢查實際上在構建中使用的插件,據我所知。由於我在pluginManagement中聲明的大部分插件在我構建父-Pom時沒有被使用,因此我無法知道在子項目嘗試使用它希望管理的插件之前是否有無效條目由父母。

我試過版本插件,但它似乎忽略不存在的插件(例如:錯別字)。我已經嘗試在我的父-Pom中聲明插件inherited=false,但是我必須將每個聲明的插件綁定到一個階段。另外,我不一定要運行這些插件對付我的父母。

我知道很多人使用父母或某種類型的超級POM,所以必須有一些我可以忽略的東西。

回答

2

在您的父pom模塊中,創建一組測試maven項目,它們都使用其中定義的部分或全部插件繼承父pom,並且有父pom運行並驗證測試maven項目的構建成功。 maven-invoker-plugin可以幫助你完成所有這些。此插件用於測試maven核心插件,因此您可以在sources of maven core plugins中找到更多使用示例。

另一個建議是隻在需要它們時纔會將插件添加到父pom pluginManagement中,那麼您將有機會對其進行測試。因此,步驟是,開始構建一個項目,該項目使用父pom中尚未存在的給定插件,將插件添加到父pom,釋放父pom快照,在新項目中使用該快照,如果全部OK釋放父pom,並調整引用到新項目的母公司。如果您需要在父pom中指定的插件或更新版本的插件,請稍後再爲另一個或同一個項目進行調整,調整父pom,發佈新父pom快照,檢查它是否適用於給定項目,以及是否釋放父pom,以及調整新發布的父郵件的父引用。

+0

我接受這個答案。我不喜歡這個解決方案,但我相信這是正確的,並且據我所知,這是完成我所要求的唯一方法。 –