Eu tenho um arquivo em lotes que executa três comandos do Maven, um após o outro. Cada comando pode ser executado com sucesso no script - por si só !. Mas quando adiciono todos os três comandos ao mesmo arquivo, apenas o primeiro é executado antes da saída do script. Alguma idéia do porquê?
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
Além disso, se eu copiar todos os três comandos e colá-los em um shell de comando (cmd.exe), eles serão executados um após o outro sem nenhum problema. Portanto, esse é aparentemente um problema com o arquivo em lotes dos.
windows
batch-file
cmd
windows-7
wiki
fonte
fonte
Respostas:
O Maven usa arquivos em lote para fazer seus negócios. Com qualquer script em lote, você deve chamar outro script usando o
call
comando para que ele retorne ao seu script após a conclusão do script chamado. Tente anexarcall
a todos os comandos.Outra coisa que você pode tentar é usar o
start
comando que deve funcionar de maneira semelhante.fonte
ant
dentro dos arquivos em lotes do Windows antes ecall
era necessárioant
para executar. Semcall
o lote será interrompido após o primeiro comando, portanto, os dois segundos não serão executados. microsoft.com/resources/documentation/windows/xp/all/proddocs/… para obter mais informações sobrecall
start
fará com que uma nova janela apareça e cada um dos três comandos seja executado em paralelo. Se você precisar que eles sejam executados de forma síncrona, usecall
.call pause
no final (sem aspas) se você quiser manter as janelas cmd abertoTendo
call
ajuda. No entanto, hoje não.Foi assim que eu resolvi:
Conteúdo do arquivo Bat (se você deseja interromper o lote quando um dos erros do cmds)
Conteúdo do arquivo Bat (se você quiser continuar em lote quando um dos erros do cmds)
fonte
cmd1 && cmd2 && cmd3 && cmd4
, fazendo essencialmente todos os comandos de uma linha.)call
solução não estava parando com os erros, este faz.Para executar mais compilações do Maven a partir de um script, você deve usar a função de chamada do Windows da seguinte maneira:
fonte
Deveria ser que o
mvn
comando específicoexec
s e não retornasse, portanto, não executando o restante dos comandos.fonte
mvn
comando?Tente escrever o seguinte arquivo em lotes e executá-lo:
Somente as duas primeiras linhas são executadas. Mas se você digitar "exit" no prompt de comando, as próximas duas linhas serão processadas. É uma concha carregando outra.
Para ter certeza de que não é isso que está acontecendo no seu script, basta digitar "exit" quando o primeiro comando terminar.
HTH!
fonte
call
. Não é um shell aninhado que não é finalizado.