#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 в Непрерывной Интеграции Сборках