Remote debug spring boot application with maven and IntelliJ | Java Development Journal

Remote debug spring boot application with maven and IntelliJ

I run in to an issue some time back where I was required to  debug a remote spring boot web application using IntelliJ and was not sure what is the best way to do it.

IntelliJ has still some issue to run Spring-boot powered web applications with Tiles and I faced same one while working on Shopizer.

We used command line to run Spring boot application using maven plugin. In this post I will try to outline how I configured IntelliJ to debug remote application.

To debug remote spring boot application make sure you have  “Spring Boot Maven Plugin” plugin configured in your pom.xml file

<plugins>
   ...
   <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>2.0.1.RELEASE</version>
   </plugin>
   ...
</plugins>

You have 2 way to configure debug option using spring boot maven plugin

  1. configure debug option using <jvmArguments> option
  2. use command line argument
<plugins>
   ...
   <plugin>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <version>2.0.1.RELEASE</version>
      <configuration>
         <jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005</jvmArguments>
      </configuration>
      ...
   </plugin>
   ...
</plugins>

 

Alternatively we will can pass these parameters using command line and we will go with this option in this post.

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

By default, the run goal runs in the same process unless jvm arguments or an agent have been specified, above configuration will ensure that you are forking the process and able to debug it.

Next step is to configure IntelliJ to enable debug points, use below steps to configure it

  1. Open run/debug configuration dialogue box and click on the new iconRemote
  2. Create remote configuration , see screen shot belowJVM
  3. Click on the debug button and you are all set to debug remote spring boot applicationDebug

Make sure that you have same port number as used while starting spring boot application using Maven.

 

Umesh

Hello!! I am Umesh- an engineer by profession and a photographer by passion.I like to build stuff on the web using OSS and love to capture the world through my lens.

follow me on:

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of