spring boot hotswap with Intellij IDE

suman j picture suman j · Apr 18, 2014 · Viewed 55.8k times · Source

I have a spring boot application running fine with Intellij IDE. i.e i started the Application class that has the main method which delegates to SpringApplication.run. Everything works great except hotswap. When I change the source, I am forced to re-start the application. Even If I start the application in debug mode, I dont see hotswap working. I could see that Intellij's Debug settings have hotswap enabled.

My observation shows that when I run the springboot application, classpath used is my

/projects/MyProject/classes/production/....

Files under classes/production are not getting updated when I change the code. Intellij IDE compiles the files but does not update classes/production directory. How do I get hotswap working with IntelliJ IDE for spring-boot?

Answer

Radouane ROUFID picture Radouane ROUFID · May 21, 2017

A solution that uses devTools works :

1 - Adding devtools to your project

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

2- Enabling automatic build

Open the Settings --> Build-Execution-Deployment --> Compiler and enable :

Build Project Automatically.

3- Update the value of compiler.automake.allow.when.app.running

press ctrl+shift+A and search for the registry. In the registry, enable :

compiler.automake.allow.when.app.running

Hope it helps !


References :