Richard Eckart de Castilho created MSHARED-1211:
---------------------------------------------------
Summary: Source-only dependencies are not detected
Key: MSHARED-1211
URL: https://issues.apache.org/jira/browse/MSHARED-1211
Project: Maven Shared Components
Issue Type: Bug
Components: maven-dependency-analyzer
Affects Versions: maven-dependency-analyzer-1.13.0
Reporter: Richard Eckart de Castilho
If a class in the `src/main/java` part module A has a source-only dependency on
a class in module B, the dependency dependency of A to B is not detected. This
can lead to build failures if any class in the `src/main/test` part of module A
also has dependencies on module B as the analyzer claims that the dependency of
module B should be moved to the `test` scope. Doing so - however - then breaks
the build.
One such source-only dependency would be the import of a compile-time constant
(e.g. static final String = "XXX") from a class in module B. Such constants are
inlined into the class file produced for the class of module A. Thus, the
compile-time dependency on module B cannot be determined by inspecting the
class file using ASM.
I guess the only way to fix this issue would be introducing another analyzer
implementation which would look at the source files. Currently (1.13.0), the
only implementation of the `ClassAnalyzer` interface is based on ASM (i.e. on
inspecting class files).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)