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
Describe the bug
The DepClean analysis is based on the information in the compiled .class files (bytecode). Therefore, DepClean only detects the usage information located in the bytecode of the application.
To Reproduce
I've investigated this issue in the project https://github.com/INRIA/spoon (see INRIA/spoon#4649). In this case, the MetaInfServices annotation from the dependency org.kohsuke.metainf-services is implemented with RetentionPolicy.SOURCE, see here. This means that the annotation is only available in the source code, and not in the .class files or at runtime.
Expected behavior
DepClean should consider dependencies used via annotations with RetentionPolicy.SOURCE as used.
The text was updated successfully, but these errors were encountered:
* Fix MavenInvokerTest
* Add explicit encoding for the failsafe-plugin to avoid log warnings
* Edit description
* Update to JDK17 and prepare for new release
* Fix IT
* Consider classes from imports in the source code of the Maven project as used
* Add test
* Fix IT
* bugfix: class files in dependencies where not analyzed
* Remove logs
* Workaround
* Fix IT and remove logs
* Fix#125
* Fix checkstyle error
* Refactoring workaround
* Fix test
* Test DefaultCallGraph
Describe the bug
The DepClean analysis is based on the information in the compiled .class files (bytecode). Therefore, DepClean only detects the usage information located in the bytecode of the application.
DepClean uses ASM for bytecode analysis, see related SO question: https://stackoverflow.com/questions/63465374/how-to-visit-annotation-inside-method-in-asm.
To Reproduce
I've investigated this issue in the project https://github.com/INRIA/spoon (see INRIA/spoon#4649). In this case, the
MetaInfServices
annotation from the dependency org.kohsuke.metainf-services is implemented with RetentionPolicy.SOURCE, see here. This means that the annotation is only available in the source code, and not in the .class files or at runtime.Expected behavior
DepClean should consider dependencies used via annotations with RetentionPolicy.SOURCE as used.
The text was updated successfully, but these errors were encountered: