Почему выполняется только первая строка этого командного файла 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", когда заканчивается первая команда.
НТН!