0

我经常使用 flexmojos 插件,并尽我所能帮助 flexmojos 邮件列表中的人们。

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

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

不幸的是,我找不到实际提供自定义验证器的记录方法。如果 DefaultModelValidator 是 Maven 唯一支持的,请在这里有人指导我如何完成或阻止我再搜索。

克里斯

4

1 回答 1

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);
    }
}

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

于 2011-11-08T15:30:27.853 回答