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

Separate resolvedRunIvyDeps and transitiveLocalClasspath into two stages when build assembly jar #4564

Closed
lihaoyi opened this issue Feb 15, 2025 · 0 comments · Fixed by #4565
Milestone

Comments

@lihaoyi
Copy link
Member

lihaoyi commented Feb 15, 2025

This will allow modifications to upstream local modules to benefit from the incremental assembly construction

Noticed when writing #4558

lihaoyi added a commit that referenced this issue Feb 15, 2025
… stages when build assembly jar (#4565)

Fixes #4564

This makes it such that changes to upstream modules can avoid
re-assembling all the external thirdparty dependencies, whereas
previously only changes to the exact module running `.assembly` would
benefit

Tested manually via ` /Users/lihaoyi/Github/mill/mill-assembly.jar -w
integration.assembly` in `example/javalib/web/3-todo-springboot/`.

- Previously incremental updates after changes to `src/` would take
~20s, because `integration` was a downstream module of the root `build`
and so it wouldn't benefit from incremental assembly construction.
- With this PR, we separately construct the
`resolvedIvyAssembly.dest/out.jar` containing the bulk of the Spring
classfiles before adding transitive local classpath and then the
module's own local classpath, and incremental updates take ~1s

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
@lefou lefou added this to the 0.13.0 milestone Feb 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants