构建自定义Maven ModelValidators

时间:2011-11-01 13:46:01

标签: validation maven maven-plugin flexmojos

我使用flexmojos插件非常多,我正尽力帮助flexmojos邮件列表中的人们。

在帮助的同时,我可以看到一个充满问题的手再次发生,并且通常总是有相同的解决方案。

我现在的想法是为flexmojos添加某种验证代码,以便让人们更容易找出问题所在。在查看Maven代码时,我发现了ModelValidators(主要是因为我试图找到一种方法来摆脱那些恼人的范围警告)。我认为创建一个实现ModelValidator的验证器并将其包含在插件中是一个好主意。

不幸的是,我找不到实际提供自定义验证器的文档化方法。如果DefaultModelValidator是Maven支持的唯一一个,那么请有人在这里指导我如何完成这项工作或阻止我再次进行搜索。

克里斯

1 个答案:

答案 0 :(得分:0)

好的......我终于找到了解决问题的方法。这是:

一般来说Maven不支持我想要的东西。幸运的是,有一种方法可以做到这一点。 当我重新配置Maven时,我必须创建一个具有ModelValidator角色的组件。如果我然后将包含此组件的jar放在我的MAVEN_HOME / lib / ext目录中,它将覆盖编织并使用我的ModelValidator而不是默认的。

@Component( role = ModelValidator.class )
public class FMDefaultModelValidator extends DefaultModelValidator {
    @Override
    public void validateEffectiveModel(Model model, ModelBuildingRequest request, ModelProblemCollector problems) {
        //super.validateEffectiveModel(model, request, problems);
    }
}

通过这个技巧,我可以通过验证做任何我想做的事情。 我记录了这一点,并在我的公司汇合中添加了一个默认项目: https://dev.c-ware.de/confluence/display/PUBLIC/Flexmojos+in+Continuous+Integration+Builds