不同版本的spring-boot-maven-plugin的jvm参数配置有所不同,同时与通过main方法启动springboot程序传递参数也有所不同。
在运行main方法时,可以通过java -jar 后面通过添加-D的参数即可传递,比如:
java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 test-tool.jar
而对于通过spring-boot-maven-plugin插件的run方法启动时传递参数,不同版本就有所差异。通过插件启动方式如下图:
在此只以1.5.4.RELEASE版本为例,pom.xml文件配置:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005</jvmArguments>
</configuration>
</plugin>
</plugins>
</build>
此时运行spring-boot:run,是可以正常传递参数。但此时通过mvn spring-boot:run命令来传递参数,参数值将会无效。
同样,即使项目中pom文件配置了上面的plugin,直接通过main方法启动,此参数也是不会生效的。打包部署时依旧需要在执行命令中添加参数项。
总之,就是启动springboot时传递参数,在某些情况是有效,在某些情况是无效的。而spring-boot-maven-plugin配置的参数是针对上图中执行spring-boot:run时生效的。
相关类似可参考资料: https://github.com/spring-projects/spring-boot/issues/875 http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-debug.html https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.1-Release-Notes#running-your-app-using-maven https://github.com/spring-projects/spring-boot/issues/1095