如何在Maven中验证父POM的pluginManagement部分?

时间:2011-09-09 05:29:12

标签: maven-2 maven maven-3

我使用的项目布局与this question.的已接受答案中描述的第一个项目布局相同如果我的父pom与我的项目POM分开管理,构建和部署,我如何确保pluginManagement我父母的部分是有效的吗?

Maven只检查实际在构建中使用的插件,据我所知。由于我在pluginManagement中声明的大多数插件在构建父pom时都没有被使用,所以在子项目尝试使用插件之前我无法知道是否有无效的条目期望由父母pom管理。

我尝试了版本插件,但它似乎忽略了不存在的插件(例如:拼写错误)。我已经尝试用inherited=false在我的父pom中声明插件,但是我必须将每个声明的插件绑定到一个阶段。另外,我不一定要针对我的父pom运行这些插件。

我知道很多人使用父母pom或某种类型的超级pom,所以必须有一些我忽略的东西。

1 个答案:

答案 0 :(得分:2)

在您的父pom模块中创建一组测试maven项目,所有项继承父pom,使用其中定义的部分或全部插件,并运行父pom并验证测试maven项目的构建成功。 maven-invoker-plugin可以帮助您完成所有这些。此插件用于测试maven核心插件,因此您可以在sources of maven core plugins中找到更多用法示例。

另一个建议是只在您需要时才将插件添加到父pom插件管理中,然后您也有机会对其进行测试。所以步骤是,开始构建一个项目,该项目使用父pom中尚未出现的给定插件,向父pom添加插件,发布父pom快照,在新项目中使用该快照,如果所有OK释放父pom,并调整参考在新项目中为父母pom。稍后对于另一个或同一个项目,如果您需要在父pom中指定的其他插件或更新版本的插件,请调整父pom,发布新的父pom快照,检查它是否适用于给定项目,以及它是否释放父pom,以及调整对新发布的父pom的父引用。