You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 29, 2020. It is now read-only.
We use the maven-dependency-plugin to analyze dependencies and fail our build if there are any used undeclared or unused declared dependencies. In the case of used undeclared dependencies, it is often helpful to know which classes are being used and where they are being used. We've found a few workarounds to make this a little easier, but the plugin has access to this information so what we really want is for the plugin to just print this info along with each used undeclared dependency. We've made this change in our fork and our developers are very happy with it, so I'd like to contribute it back (here is an example of the output before and after the change).
If you agree this is a useful feature, this PR implements the first step which is to update the maven-dependency-analyzer to return this information so that the maven-dependency-plugin can use it.
I introduced a new interface, DependencyAnalyzerWithUsages, to avoid breaking changes to the DependencyAnalyzer interface. I confirmed with the japi-compliance-checker that source and binary compatibility has been maintained:
➜ ~ perl japi-compliance-checker.pl -lib maven-dependency-analyzer -jdk-path $JAVA7_HOME -old ~/Downloads/maven-dependency-analyzer-1.6.jar -new ~/src/maven-shared-pr/maven-dependency-analyzer/target/maven-dependency-analyzer-1.7-SNAPSHOT.jar
using Java 1.7.0_75
WARNING: set 1st version number to 1.6 (use -v1 option to change it)
WARNING: set 2nd version number to 1.7-SNAPSHOT (use -v2 option to change it)
reading classes 1.6 ...
reading classes 1.7-SNAPSHOT ...
comparing classes ...
creating compatibility report ...
result: COMPATIBLE
total "Binary" compatibility problems: 0, warnings: 0
total "Source" compatibility problems: 0, warnings: 0
see detailed report:
compat_reports/maven-dependency-analyzer/1.6_to_1.7-SNAPSHOT/compat_report.html
I'd love to hear any thoughts or feedback you have, thanks!
New features like this deserve at least one or more tests.
Regarding the code, I don't think it deserves a new interface, since it is very very likely this library contains the only implementations of the DependencyAnalyzer, so let's just add the new method here.
Also, don't use @version $Id$ in javadoc anymore, nor ROLE: these are leftovers from ancient times and not used anymore.
Thanks for reviewing the PR, I have updated it based on your suggestions. With regard to testing, DefaultProjectDependencyAnalyzer was updated to use the new functionality internally. So I'm largely relying on its existing test suite (DefaultProjectDependencyAnalyzerTest) to validate the correctness of the refactoring. I have also added assertions to these tests to flex the new methods and verify that the returned DependencyUsages have the expect values
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
None yet
3 participants
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.
We use the maven-dependency-plugin to analyze dependencies and fail our build if there are any used undeclared or unused declared dependencies. In the case of used undeclared dependencies, it is often helpful to know which classes are being used and where they are being used. We've found a few workarounds to make this a little easier, but the plugin has access to this information so what we really want is for the plugin to just print this info along with each used undeclared dependency. We've made this change in our fork and our developers are very happy with it, so I'd like to contribute it back (here is an example of the output before and after the change).
If you agree this is a useful feature, this PR implements the first step which is to update the maven-dependency-analyzer to return this information so that the maven-dependency-plugin can use it.
I introduced a new interface,
DependencyAnalyzerWithUsages, to avoid breaking changes to theDependencyAnalyzerinterface. I confirmed with the japi-compliance-checker that source and binary compatibility has been maintained:I'd love to hear any thoughts or feedback you have, thanks!