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)

Reply via email to