如何通过Maven使用Netbeans调试Sping Boot

idfiyjo8  于 2022-11-10  发布在  Maven
关注(0)|答案(5)|浏览(252)

在摆弄了太长时间之后,直到我在Netbeans 8.2和Sping Boot 1.4.3中得到了正确的调试设置,我想我把我的发现写下来作为其他人的问答。
问题是Netbeans的默认配置无法在调试模式下正确启动Spring,当您搜索Internet时,您只能在Spring文档中找到过时的信息,这些信息无法正常工作。
如果您知道如何操作,解决方案很简单。请在下面找到正确的设置说明。

2lpgd968

2lpgd9681#

已通过测试并可与Netbeans 8.2和Spring-Boot 1.4.3配合使用:
首先,请确保包含Spring Maven插件(在创建新得Netbeans Spring项目时,应该已经包含了该插件):

<plugins>
  ...
  <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <executions>
      <execution>
        <goals>
          <goal>repackage</goal>
        </goals>
      </execution>
    </executions>
  </plugin>
  ...
</plugins>

另外,最好包含Spring Devtools,如下所示:

<dependencies>
  ...
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
  </dependency>
  ...
</dependencies>

现在导航到您的项目设置-〉Actions -〉Debug project并设置以下内容:

执行目标:

spring-boot:run

设置属性:

run.jvmArguments=-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address}
jpda.listen=true

现在,通过常用的调试按钮运行应用程序,Spring应该正确地连接到JVM调试器。

Spring Boot 2.x

要为Sping Boot 2.x项目(更具体地说,是spring-boot-maven-plugin得2.x版本)启用Netbeans调试,过程完全相同,只是run.jvmArguments属性名称已更改为spring-boot.run.jvmArguments

spring-boot.run.jvmArguments=-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address}
jpda.listen=true
vsdwdz23

vsdwdz232#

在测试NetBeans 8.2和Sping Boot 2.0.1时,我无法按照@TwoThe的说明进行操作。首先,我遇到了一个问题,在输出窗口中看到的只是“JPDA Listening Start...”。为了解决这个问题,我添加了Spring Devtools作为可选依赖项。其次,尽管调试看起来运行正常,但“调试”窗口该窗口通常显示活动线程的列表,但该窗口是空的,我设置的断点没有被触发。
我发现使用默认的“Debug project”动作执行目标就足够了,而不是将执行目标更改为“spring-boot:run”:

process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec

..和属性:

exec.args=-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath ${packageClassName}
exec.executable=java
jpda.listen=true

(As旁注,作为常规Java应用程序进行调试显然是在Eclipse中调试 Boot 应用程序的推荐方法;请参见How to debug Spring Boot application with Eclipse?
一个有用的提示是,如果你想使用某个Sping Boot 配置文件进行调试,比如说“debug”,你可以在“exec.args”属性前面加上“-Dspring.profiles.active=debug“。另请参阅:Spring boot running a fully executable JAR and specify -D properties

kgsdhlau

kgsdhlau3#

在NetBeans 9上测试
操作:添加任何名称设置属性:选择“添加”〉“按钮,然后选择”调试Maven生成并始终调试“-〉”IDE调试“按钮

cotxawn7

cotxawn74#

如果在应用了上述所有修复后问题仍然存在,请删除所有断点,然后重试。窗口-〉调试-〉断点-〉删除所有断点

ie3xauqp

ie3xauqp5#

战俘

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
</dependency>

建筑物

<build>
<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>

                            <executions>
                                <execution>
                                  <goals>
                                    <goal>repackage</goal>
                                  </goals>
                                </execution>
                              </executions>
    </plugin>
</plugins>

调试项目

*可执行目标: Package 件
*设置属性:netbeans.deploy.调试模式=true netbeans.deploy=true

变更

*可执行目标:Spring引导:运行
*设置属性:jvm-boot.run.jvmArguments=-Xdebug -Xrunjdwp:传输=dt_套接字,服务器=n,地址=${jpda.address} jpda.listen=true

和Netbeans按下调试项目--而不是导航器--〉spring-boo-run...有什么区别吗?spring-boot.run.jvmArguments:

相关问题