web-dev-qa-db-ja.com

Maven Spring Boot Run Debug with arguments

通常、私は次のコマンドでSpring Bootアプリケーションを実行しています:

mvn spring-boot:run -Drun.arguments=--server.port=9090 \
   -Dpath.to.config.dir=/var/data/my/config/dir

カスタムポートをデバッグ用に設定したいので、Eclipseから接続できます。例から引数を追加する場合 http://docs.spring.io/spring-boot/docs/1.1.2.BUILD-SNAPSHOT/maven-plugin/examples/run-debug.html

mvn spring-boot:run -Drun.arguments=--server.port=9090 \
   -Dpath.to.config.dir=/var/data/my/config/dir \
   -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8787"

動作しますが、server.portpath.to.config.dirなどの他の引数は認識されなくなり、次のような例外が発生します。

org.springframework.beans.factory.BeanDefinitionStoreException: Failed
to parse configuration class [com.my.app.Controller]; nested exception
is Java.lang.IllegalArgumentException: Could not resolve placeholder
'path.to.config.dir' in string value
file:///${path.to.config.dir}/some.properties"

質問:すべての引数で実行するにはどうすればよいですか?

29
wbk

jvmArguments オプションの使用を開始したため、動作と気付く変更が発生しています。

アプリケーションの実行に使用される分岐プロセスに関連付けられるJVM引数。コマンドラインで、引用符で複数の値を囲むようにしてください。

デフォルトでは、Spring Boot Mavenプラグインを使用すると、 fork オプションで説明されているように、実行もフォークされます。

実行プロセスをフォークする必要があるかどうかを示すフラグ。デフォルトでは、プロセス分岐は、エージェントまたはjvmArgumentsが指定されている場合にのみ使用されます。

したがって、jvmArgumentsを使用すると、プラグイン実行のフォークモードもアクティブになります。フォークすることで、実際に他の人をピックアップしません-Dコマンドラインから渡された引数。

SolutionjvmArgumentsを使用する場合は、必要な引数をすべて渡します。

mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8787 -Dserver.port=9090 -Dpath.to.config.dir=/var/data/my/config/dir"
31
A_Di-Matteo

Spring-boot 2.0から名前が変更されていることに注意してください。詳細については、以下をご覧ください。

https://docs.spring.io/spring-boot/docs/2.0.2.RELEASE/maven-plugin/run-mojo.html

  • run.jvmArguments-> spring-boot.run.jvmArguments
  • run.arguments-> spring-boot.run.arguments
15
jalogar

パラメーター名には、spring-boot.のように-Dspring-boot.run.jvmArgumentをプレフィックスとして付ける必要があります

Spring Boot documentation は、実行中のソリューションとしてSpring Boot 2.0.3を提供しました

mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
15
Stephane