Как я могу предоставить информацию о подготовке релиза Maven без подсказок? - PullRequest
8 голосов
/ 20 мая 2010

Я хочу автоматизировать выполнение релиза Maven: подготовьтесь с помощью Perl, чтобы пользователю не приходилось отвечать на запросы об именах версий и т. Д. Есть ли аргументы -D, которые могут быть предоставлены, чтобы не было никаких запросов? Я попробовал очевидное решение, которое состоит в том, чтобы передать ответные подсказки mvn через код perl, подобный этому:

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 аргументы для релиза: подготовить плагин: цель?

Спасибо.

Ответы [ 4 ]

9 голосов
/ 21 мая 2010

Для этого вы можете использовать следующую команду maven ...

mvn --batch-mode release:prepare

Это будет принимать значения по умолчанию для всего, что вам обычно предлагается; это все равно что запускать релиз и просто нажимать ввод каждый раз, когда он задает вам вопрос. Например, если ваша текущая версия разработки вашего проекта была 1.2.3-SNAPSHOT, она выпустит версию 1.2.3 и переместит вашу версию разработки на 1.2.4-SNAPSHOT. Обычно лучше всего позволить Maven решить эту проблему за вас, так как цель maven - использовать соглашение поверх конфигурации. Однако, если вам нужно указать не нестандартные свойства, maven-release-plugin разрешает переопределение свойств командной строки, а также использует файл release.properties для переопределения этих параметров.

4 голосов
/ 20 мая 2010
1 голос
/ 20 мая 2010

Если вы ищете решение Perl, аргументы командной строки обычно выполняются с помощью команды system.

Попробуйте system $cmd;

Насколько я могу судить, нет необходимости открывать и закрывать файловые дескрипторы.

0 голосов
/ 20 декабря 2012

Вы можете указать все, используя аргументы для выпуска mvn: prepare:

mvn release: prepare -DautoVersionSubmodules = true -DreleaseVersion = {ваша версия выпуска} -DdevelopmentVersion = {следующая версия} -SNAPSHOT -Dtag = {ваш тег}

...