[
https://issues.apache.org/jira/browse/MSHARED-1211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17763406#comment-17763406
]
Elliotte Rusty Harold commented on MSHARED-1211:
------------------------------------------------
Maybe what's needed here is a compileOnly scope similar to Gradle's. However
introducing that would be a major undertaking.
> 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
> Priority: Major
>
> 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)