Я хочу автоматизировать казнь Знатока release:prepare с Perl так, чтобы пользователь не отвечал на подсказки для имен версии и т.д. Существуют ли-D аргументы, которые могут быть предоставлены так, чтобы никакой запрос не был сделан? Я попробовал очевидное решение, которое должно подать быстрые ответы на mvn с помощью кода жемчуга как это:
my $cmd = qq(mvn release:prepare -DautoVersionSubmodules=true-DpreparationGoals="clean install");
open MVN, "| $cmd";
print MVN "\n"; # default
print MVN "$cur_version";
print MVN "\n";
print MVN "$next_version";
print MVN "\n";
close MVN;
но mvn игнорирует такой вход и завершает использование значений по умолчанию (и не предлагает ни одному).
Так, есть ли-D args для release:prepare plugin:goal?
Спасибо.
Для части Maven см. Выполнение неинтерактивного выпуска .
Если вы ищете решение Perl, аргументы командной строки обычно выполняются с помощью команды system
.
Попробуйте system $ cmd;
Насколько я могу судить, нет необходимости открывать и закрывать дескрипторы файлов.
Для этого вы можете использовать следующую команду maven...
mvn --batch-mode release:prepare
При этом будут приняты значения по умолчанию для всего, что обычно запрашивается; это похоже на запуск релиза и простое нажатие клавиши Enter каждый раз, когда он задает вам вопрос. Например, если текущая версия разработки вашего проекта была 1.2.3-SNAPSHOT, он выпустит версию 1.2.3 и переместит версию разработки до 1.2.4-SNAPSHOT. Обычно лучше позволить Maven сделать все это за вас, поскольку цель maven - использовать соглашения вместо конфигурации. Однако, если вам нужно указать свойства не по умолчанию, maven-release-plugin позволяет переопределять свойства в командной строке, а также использовать файл 'release.properties' для переопределения этих настроек.