1

Mavenのいくつかのコマンドを単純化するために Python を使用しています。mvn testデバッグモードで呼び出すこのスクリプトがあります。

from subprocess import call
commands = []
commands.append("mvn")
commands.append("test")
commands.append("-Dmaven.surefire.debug=\"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE\"")
call(commands)

問題は-Dmaven.surefire.debug、クォータにある必要があるパラメーターを受け入れる行にあり、それを正しく行う方法がわかりません。このリストを印刷すると問題ないように見えますが、取得したスクリプトを実行するError translating CommandLineとデバッグ行が実行されません。

4

1 に答える 1

1

クォータは、コマンドを実行するシェルにのみ必要です。

上記の呼び出しをシェルから直接行う場合、おそらくそうします

mvn test -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE"

これらの"記号を使用すると、(簡単に言えば) シェルに内部のスペースを無視するように指示できます。

プログラムは引数で呼び出されます

mvn
test
-Dmaven.surefire.debug=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE

それで

from subprocess import call
commands = []
commands.append("mvn")
commands.append("test")
commands.append("-Dmaven.surefire.debug=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE")
call(commands)

進むべき道です。

于 2013-01-17T09:01:12.383 に答える