如何解决如何在Intellij中以调试模式调试spring boot maven项目?
我使用以下命令从终端运行开发人员配置文件的maven项目
sudo mvn spring-boot:run -Dspring.profiles.active=dev
如何使用给定的配置文件运行项目以在调试模式下运行。如何为此设置intellij中的配置?
解决方法
如果您是从maven运行的,则添加以下参数:
int number = 0x12;
System.out.println(number);
// output is 18
5555是调试端口号(您可以使用任何其他未占用的端口)。
然后在IntelliJ中,您可以使用远程调试配置并连接到该端口。
如果从intelliJ打开pom.xml,则可以使用 mvn spring-boot:run -Dspring.profiles.active=dev -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5555"
和main类创建运行配置,就像在常规的最简单的Java应用程序中一样,main类是具有main方法的类。
只需单击运行按钮(绿色的三边形按钮),然后单击调试...
IntelliJ将在调试模式下运行spring-boot应用程序
如果要使用参数运行,只需打开编辑配置并将args放入VM Options / Program参数中,如
,使用特定的配置文件从Maven运行Spring Boot项目
mvn spring-boot:run -Dspring-boot.run.profiles=foo,bar
或者通过使用shell变量
SPRING_PROFILES_ACTIVE=foo mvn spring-boot:run
或通过将参数传递给JVM
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dspring.profiles.active=foo,bar"
这些是我知道的适用于Spring Boot v2.0 +的唯一方法。
Spring Boot Maven插件可以识别第一个选项,并将其传递给应用程序JVM。
从Spring Boot的2.0版开始,run
目标在默认情况下分叉该过程。由于-Dspring.profiles.active
不能直接被插件识别,因此它只能由Maven进程看到,而不会传递给应用程序本身。这就是为什么它不能以mvn spring-boot:run -Dspring.profiles.active=foo,bar
形式工作的原因。
在第二个选项中,shell变量对于从该shell产生的任何子进程都应该可见。
从Maven以调试模式启动Spring Boot项目
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,suspend=y,address=5005"
放在一起
mvn spring-boot:run -Dspring-boot.run.profiles=foo,bar -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,address=5005"
或者,将所有参数传递给JVM
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,address=5005 -Dspring.profiles.active=foo,bar"
Maven pom.xml
应该包含Spring Boot插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.1.RELEASE</version>
</plugin>
在IntelliJ中,您应该从“运行/调试配置”工具窗口中创建一个新的“远程”调试配置。您可以在主菜单-“运行/编辑配置...”中找到它
默认配置将使用相同的5005
端口。
之后,启动该调试配置。控制台应显示“已连接到目标VM ...”。
来源:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。