2011-11-01 82 views
0

我使用flexmojos插件相当多,试图帮助flexmojos邮件列表上的人尽可能好。构建自定义Maven ModelValidators

在帮助时,我可以看到手中充满了各种问题,并且通常都有相同的解决方案。

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

不幸的是,我找不到一个文档化的方式来提供自定义验证器。如果DefaultModelValidator是Maven支持的唯一一个,那么在这里有人请指导我如何完成这个工作,或者阻止我再次访问。

克里斯

回答

0

好吧......我终于figgured了一个解决我的问题。这里是:

一般来说,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