Создание пользовательских Maven ModelValidators

#validation #maven #maven-plugin #flexmojos

#проверка #maven #maven-плагин #flexmojos

Вопрос:

Я довольно часто использую плагин flexmojos и пытаюсь помочь людям в списке рассылки flexmojos настолько хорошо, насколько могу.

Помогая, я мог видеть, что постоянно возникают проблемы, и обычно всегда имеют одно и то же решение.

Теперь моя идея заключалась в том, чтобы добавить какой-то код проверки в flexmojos, чтобы людям было проще узнать, что происходит не так. Просматривая код Maven, я ввел ModelValidators (в основном потому, что я пытался найти способ избавиться от этих предупреждений о недопустимой области видимости). Я думаю, было бы неплохо создать валидатор, который реализует ModelValidator, и включить его в плагин.

К сожалению, я не смог найти документированный способ фактического предоставления пользовательских валидаторов. Может ли кто-нибудь здесь, пожалуйста, рассказать мне, как это делается, или остановить меня от дальнейшего поиска, если DefaultModelValidator является единственным, который поддерживает Maven.

Крис

Ответ №1:

ОК… Я, наконец, нашел решение своей проблемы. Далее:

В общем, 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);
    }
}
 

С помощью этого трюка я могу делать с проверкой все, что захочу.
Я задокументировал это и добавил проект по умолчанию в мои companies confluence:
https://dev.c-ware.de/confluence/display/PUBLIC/Flexmojos в Непрерывной Интеграции Сборках