Saya memiliki file batch yang menjalankan tiga perintah Maven, satu demi satu. Setiap perintah dapat berhasil dieksekusi dalam skrip - dengan sendirinya !. Tetapi ketika saya menambahkan ketiga perintah ke file yang sama, hanya yang pertama dieksekusi sebelum skrip keluar. Ada yang tahu kenapa?
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
Juga, jika saya menyalin ketiga perintah dan menempelkannya ke shell perintah (cmd.exe), mereka mengeksekusi satu demi satu tanpa masalah. Jadi ini rupanya beberapa masalah dengan file batch.
windows
batch-file
cmd
windows-7
wiki
sumber
sumber
Jawaban:
Maven menggunakan file batch untuk melakukan bisnisnya. Dengan skrip batch apa pun, Anda harus memanggil skrip lain menggunakan
call
perintah sehingga ia tahu untuk kembali ke skrip Anda setelah skrip yang dipanggil selesai. Coba tambahkan dulucall
ke semua perintah.Hal lain yang bisa Anda coba adalah menggunakan
start
perintah yang harus bekerja sama.sumber
ant
file batch windows sebelumnya dancall
harusant
dijalankan. Tanpacall
batch akan berhenti setelah perintah pertama, maka yang kedua tidak akan dieksekusi. microsoft.com/resources/documentation/windows/xp/all/proddocs/… untuk info lebih lanjut tentangcall
start
akan menyebabkan jendela baru muncul, dan masing-masing dari tiga perintah akan berjalan secara paralel. Jika Anda membutuhkannya untuk berjalan secara sinkron, gunakancall
.call pause
di akhir (tanpa tanda kutip) jika Anda ingin tetap membuka jendela cmdSetelah
call
membantu. Namun hari ini tidak.Inilah cara saya menyelesaikannya:
Isi file bat (jika Anda ingin menghentikan batch ketika salah satu cmds kesalahan)
Isi file bat (jika Anda ingin melanjutkan batch ketika salah satu cmds kesalahan)
sumber
cmd1 && cmd2 && cmd3 && cmd4
, pada dasarnya membuat semua perintah satu baris.)call
solusi tidak berhenti di kesalahan, yang satu ini tidak.Untuk menjalankan lebih banyak build Maven dari satu skrip, Anda harus menggunakan fungsi panggilan Windows dengan cara berikut:
sumber
Seharusnya
mvn
perintah khususexec
dan tidak kembali, dengan demikian tidak menjalankan sisa perintah.sumber
mvn
perintah berikutnya ?Coba tulis file batch berikut dan jalankan:
Hanya dua baris pertama yang dieksekusi. Tetapi jika Anda mengetik "keluar" pada prompt perintah, dua baris berikutnya diproses. Ini adalah shell yang memuat yang lain.
Untuk memastikan bahwa ini bukan yang terjadi pada skrip Anda, cukup ketik "keluar" ketika perintah pertama berakhir.
HTH!
sumber
call
. Itu bukan shell bersarang yang tidak diakhiri.