maven-release-plugin скрывает взаимодействие других плагинов с пользователем (стандартный ввод / стандартный вывод) - PullRequest
0 голосов
/ 14 мая 2019

Любой другой плагин mvn, который взаимодействует с пользователем (запрашивает ввод), не работает, если запущен плагин maven-release-plugin.

Я создал собственный плагин mvn, который запускает некоторые проверки на этапе «проверки». Когда эти проверки обнаруживают некоторые ошибки, он запрашивает подтверждение у пользователя, чтобы он продолжал или не работал.

Что-то вроде:

> We have found 3 problems!
> Problem 1: asdfasdfadsf
> Problem 2: sdfgsdfg
> Problem 3: asdfasdfahfg
> "Do you want to continue anyway? (y/n) ?: __"

Если я запускаю это так: «$ mvn validate» работает нормально, но, когда я запускаю плагин mvn, например «$ mvn release: prepare», он просто останавливается в этот момент, не давая пользователю взаимодействовать.

ПРИМЕЧАНИЯ: Я использую "org.codehaus.plexus.components.interactivity.Prompter;" для того, чтобы запросить параметры пользователя. Тем не менее, я попытался сделать это только с помощью java Scanner / System.out, с теми же результатами: при запуске плагина mvn release другие плагины, которые вы можете иметь, не смогут ни писать, ни читать консоль.

Мои вопросы об этой ситуации:

1) Есть ли способ сделать пользовательский плагин maven для взаимодействия с пользователем внутри maven-release-plugin?

Я знаю, что есть альтернативы ... (например, использование того же аргумента "-D" для пропуска моих проверок). Тем не менее, в моем случае будет очень полезно спросить пользователя, что делать.

2) Я обнаружил, что несколько процессов maven выполняются одновременно при вызове плагина релиза (например, если я проверяю их с помощью «ps aux | grep maven», когда «mvn release: prepare» работает в фоновом режиме). Почему это так?

Спасибо большое!

...