Don't modify exact dependencies index #1593
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Before this PR
The values in the
classToDependency
index can be modified if the same class is produced by multiple artifacts and subprojects are not all using the same artifact to provide this class.This can happen quite easily when using our internal jakarta renames plugin.
After this PR
The
classToDependency
index stores sets of artifacts that provide a given class. ThecheckUnusedDependencies
andcheckImplicitDependencies
tasks have been updated to handle multiple artifacts as gracefully as possible.This was pretty trivial for the
checkUnusedDependencies
task. It was a bit more involved for thecheckImplicitDependencies
task since we have to treat the potential artifacts as a conjunctive normal form.