Почему выполняется только первая строка этого командного файла Windows, но все три строки выполняются в командной оболочке?

У меня есть командный файл, который выполняет три команды Maven, один за другим. Каждая команда может быть успешно выполнена в script - сама по себе!. Но когда я добавляю все три команды в один и тот же файл, только первый из них выполняется до выхода script. Любая идея почему?

mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true

Кроме того, если я скопирую все три команды и вставив их в командную оболочку (cmd.exe), они будут выполняться один за другим без проблем. Таким образом, это, по-видимому, проблема с файлом dos batch.

Ответ 1

Maven использует пакетные файлы для своей работы. С любым пакетом script вы должны вызвать другой script с помощью команды call, чтобы он мог вернуться к вашему script после завершения вызова script. Попробуйте добавить call ко всем командам.

Еще одна вещь, которую вы могли бы попробовать - использовать команду start, которая должна работать аналогично.

Ответ 2

Имея call помогает

Однако сегодня это не

Вот как я решил:

содержимое файла bat (если вы хотите остановить пакет при одной из ошибок cmds)

cmd1 && ^
cmd2 && ^
cmd3 && ^
cmd4 && ^

содержимое bat файла (если вы хотите продолжить пакет при одной из ошибок cmds)

cmd1 & ^
cmd2 & ^
cmd3 & ^
cmd4 & ^

Ответ 3

Чтобы выполнить больше maven-сборок из одного script, вы должны использовать функцию вызов Windows :

call mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar  -Dpackaging=jar -DgeneratePom=true
call mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar  -Dpackaging=jar -DgeneratePom=true
call mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true

Ответ 4

Должно быть, что конкретная команда mvn exec и не возвращается, тем самым не выполняя остальные команды.

Ответ 5

Попробуйте записать следующий командный файл и выполнить его:

Echo one
cmd
Echo two
cmd
Echo three
cmd

Выполняются только первые две строки. Но если вы выберете "exit" в командной строке, обрабатываются следующие две строки. Это оболочка загружает другую.

Чтобы убедиться, что это не то, что происходит в вашем script, просто введите "exit", когда заканчивается первая команда.

НТН!