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

Implement direct dependency tags for maven external targets #141

Closed

Conversation

arunkumar9t2
Copy link
Contributor

@arunkumar9t2 arunkumar9t2 commented Oct 1, 2024

Proposed Changes

This change generates tags for maven artifacts that can be used to do classpath reduction on Bazel side. This builds on top of existing implementation where direct dependency information is embedded in tags and our Bazel fork uses it to do classpath reduction.

Design Decisions

  • All maven targets irrespective of which classpath they are in WORKSPACE, have @maven// prefix.
  • Entire transitive classpath of each maven target is made direct since there are many dependencies internal that does not follow proper compile/runtime in their pom.xml. To overcome this, Grazel flattens this and adds them to tags.

With this change, we can enable compiling with direct dependencies for both internal and external targets which brings significant performance increase for both clean and incremental builds.

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

Successfully merging this pull request may close these issues.

4 participants