Написание Maven Plugin / Mojo: как сделать так, чтобы цель принудительно выполняла другие цели?

Примечание: эта ветка посвящена написанию собственного Mojo, а не использованию плагина.

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

Допустим, у нас есть две цели в нашей плагин:

  • prepare (phase: generate-sources)
  • do (phase: compile)

Я хочу настроить do Mojo, чтобы требовать prepare , который должен был быть выполнен на ранней стадии сборки. Однако ничто в документации дескриптора не предполагает, что я могу.

Пользователь, вероятно, не заботится или не понимает смысл цели подготовить , поэтому я не хочу форсировать им указать это в их POM. Конечно, я мог бы выполнить Mojo непосредственно из do , но тогда цель prepare будет выполняться на более позднем этапе, чем предполагалось.

(Я изучил пользовательские жизненные циклы , но из-за этого создается впечатление, что каждый, у кого уже есть цель prepare в своих POM, будет выполнять ее дважды после запуска do .)

6
задан Community 23 May 2017 в 12:00
поделиться