Vaadin multi module project and spring dev tools not picking up code changes

Dear community,

I’ve been reading documentation from Vaadin, Spring, Howto’s etc and even threads in the forum in order to figure out how to accomplish this.

I have to develop 2 applications with Vaadin 24.8, SpringBoot that should have some shared code. So I planned to go with a multi module:
2 modules, 1 for each application
1 module with shared UI components, utility classes
1 module with entities
1 module with services

I’m using maven as build tool and Eclipse 2025.06 as IDE.

Setting up the multi module project is easy and the applications start with spring-boot:run just as you would expect. When I change code in the application module, the spring dev tools pick up the code changes, the server reloads and the code change is applied, again just as you expect.

BUT, when I change something in the shared components module, the server restarts but doesn’t take the code changes into account.

I’ve tried adding
spring.devtools.restart.additional-paths
to my application.properties. I tried relative and absolute paths. But without any success.

I need to run
mvn install
on the shared module and then restart the application in order to make it work but that’s really a pain.

So, I wonder how you guys handle such a setup? Are you facing the same issues? Are you using a different setup for that kind of a project with shared “libraries”?

Do you have a clue whether this is a spring dev tools limitation? Maven issue?

Many thanks in advance for your feedback.

Kind regards,

Alex

Hi Alex,

I tried a similar setup using this project: demo-theme-app. It’s a multi-module project with shared components (component-lib), using Vaadin 24.8 and Spring Boot. I tested it in both IntelliJ 2025.1.3 and Eclipse 2025-06.

When I change something in the shared module – for example, in the LocalTextField component – the change is automatically picked up and applied in the running app via Spring Dev Tools without needing a manual build or restart.

One setting that might be crucial is:

vaadin.allowed-packages=com.example.components

(This was called vaadin.whitelisted-packages in earlier versions.)
Make sure this points to the correct packages inside your shared modules. This allows Vaadin to correctly recognize and load your custom components during hot reloads.

I didn’t need to set spring.devtools.restart.additional-paths at all – it just worked with the correct package setup.

Hope this helps! Let me know if you run into more issues. :blush:

Best regards,
Sebastian

Hi Sebastian,

thank you very much for your kind reply to my question. I’ll have a look at your project.

Kind regards,

Alex