2011-02-02 7 views
1

私は非常に長いのでいくつかのmavenコマンドで "バット"ファイルを持っているので、実行するMVNコマンドで単一のファイルを作成しようとしました。私はcygwinの中で私のbatファイルを呼び出します。最初のコマンドの後にcygwinから呼び出したバッチファイルが壊れていませんか?

mvn install:install-file -DgroupId=org.openhealthtools.ihe -DartifactId=atna.auditor -Dversion=1.2.0 -Dfile=resources/lib/org.openhealthtools.ihe.atna.auditor_1.2.0.jar -Dpackaging=jar -DgeneratePom=false 

mvn install:install-file -DgroupId=org.openhealthtools.ihe -DartifactId=atna.context -Dversion=1.2.0 -Dfile=resources/lib/org.openhealthtools.ihe.atna.context_1.2.0.jar -Dpackaging=jar -DgeneratePom=true 

不思議なことに、最初のMVNインストール:

$

サンプルMVNは私のファイルにコマンド/ mvncommand.bat実行され、すべてが大丈夫です。しかし、Cygwinが残りのmvnコマンドを呼び出す方法を教えてください。

ありがとうございます。

JR

答えて

3

のMaven(mvn)はcallで行う必要があります別のバッチファイルからバッチファイルや実行中のバッチファイルです。

ですから、

call mvn ... 

に持っているものに変更し、それが動作するはずです。

これはCygwinとはまったく関係ありません。

+0

ありがとう!ちょうど私は騒動であり、すべてです。私の問題を解決しました。 –

+0

@code:これは、 'java -jar maven.jar'などを呼び出すバッチファイルで十分であると判断した場合に、多くのJavaベースのアプリケーションで問題になります。それはコンソールからうまく動作しますが、バッチファイルであることがわからない限り、バッチファイルの内部から問題が発生します。 – Joey

+0

".bat"拡張子を削除して ".sh"に設定し、各mvnコマンドの前に "call"なしで動作するようになりました。おそらくウィンドウズはバットファイルのプロセスを開始していたので、cygwinのスコープからプロセスを開始していました。 –

0

最初のmvnコマンドがエラーコードを返す可能性があります。 Windowsのcmdでは、これ以降のすべてのコマンドは実行されません。これはあなたが望む動作かもしれませんが、既にCygwinを使用しているので、Windowsのバッチファイルではなく* nixのようなシェルの使用を検討する必要があります。

たとえば、どちらのコマンドもシェルを選択したmvncommandというファイルに入れることができます。

#!/usr/bin/bash 
mvn install:install-file -DgroupId=org.openhealthtools.ihe -DartifactId=atna.auditor -Dversion=1.2.0 -Dfile=resources/lib/org.openhealthtools.ihe.atna.auditor_1.2.0.jar -Dpackaging=jar -DgeneratePom=false 

mvn install:install-file -DgroupId=org.openhealthtools.ihe -DartifactId=atna.context -Dversion=1.2.0 -Dfile=resources/lib/org.openhealthtools.ihe.atna.context_1.2.0.jar -Dpackaging=jar -DgeneratePom=true 
+0

いいえ、エラーではありません。また、ゼロ以外の戻りコードはバッチファイルを終了しません。それはナンセンスです。 – Joey

+0

Ok - SET ERRORLEV = 1で別のバッチファイルを呼び出すバッチファイルをテストしようとしましたが、それ以降の呼び出しは実行されません。ネストされたバッチが呼び出される方法にいくつかの違いがありますか? – dfb

+0

'help call'を試してください。 'set ERRORLEV = 1'は実際には何もしません。 – Joey

関連する問題