Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Spring-Boot integration, support for Spring-Boot Assemblies #4479

Open
lefou opened this issue Feb 5, 2025 · 1 comment
Open

Improve Spring-Boot integration, support for Spring-Boot Assemblies #4479

lefou opened this issue Feb 5, 2025 · 1 comment
Assignees
Milestone

Comments

@lefou
Copy link
Member

lefou commented Feb 5, 2025

Being a Java framework, Spring-Boot not necessarily requires dedicated support. Yet, The Spring-Boot framework provides features and tooling which could use a better Mill integration, namely Spring-Boot Assemblies.

Mill already comes with Assembly support. Spring-Boot provides an alternative implementation with different trade-offs. For example, in Spring-Boot Assemblies, library dependencies are not unpacked but embedded as-is, which has various benefits:

  • no re-packaging
  • no special setup for file collisions needed
  • no licensing issues due to repackaging
  • works for Non-Spring applications as well
  • potentially more docker-friendly

This comes at the price, that a Spring-Boot application uses it's own main class as an entry point and a specialized classloader.

It would be nice to have a SpringBootAssemblyModule, that supports those features out of the box. There is a prior-art external plugin mill-spring-boot which could be integrated for that.

A Spring-Boot specific tutorial should be added and discuss the features and its pros and cons. Also, other tutorials using Spring-Boot should be reviewed if they can benefit from the new module.

@lefou lefou self-assigned this Feb 5, 2025
@lefou lefou added this to the 0.13.0 milestone Feb 5, 2025
@lefou lefou changed the title Improve Spring-Boot interation, support for Spring-Boot Assemblies Improve Spring-Boot integration, support for Spring-Boot Assemblies Feb 5, 2025
@lihaoyi
Copy link
Member

lihaoyi commented Feb 14, 2025

I think what we can aim for is 4-5 example projects showing off how to use Mill with Spring-Boot to support the most common use cases, that we can include on a dedicated page in the documentation under Building Java with Mill.

We should also try to quantify and state the value prop of using Mill for Spring-Boot projects: are compile times better? is --watch more convenient? Easier integrations with non-JVM languages in the build? I'm not actually sure what concrete comparisons would make the most sense here, but I feel we should be able to find some benefits of using Mill rather than Maven or Gradle

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants