Hello,
Recently, I attempted to use ‘mvn dependency:tree’ to retrieve the project's 
dependency tree. However, in the output, I noticed that for the same dependency 
with different scopes, its version doesn't appear to be consistent. The 
specific scenario is as follows:

(org.checkerframework:checker-qual:jar:3.5.0:compile - scope updated from 
runtime; omitted for duplicate)

org.checkerframework:checker-qual:jar:3.12.0:compile

I made sure that these two pieces of information are present in the dependency 
tree of the same JAR. However, in the compilation information, I found that the 
first entry was hidden, and only the second entry was displayed. I'm curious 
about what happened here. In the actual compilation process, were both versions 
utilized, or was only the first version used?

Additionally, I attempted to remove the existing dependency package of version 
3.5.0 and recompile the project. Surprisingly, even after removing the 3.5.0 
version dependency package, Maven still downloads and utilizes it. Does this 
indicate that the project is still using the 3.5.0 version of the dependency 
package? Of course, I need to add a clarification: the 3.5.0 version of the 
dependency package is an indirect dependency of the project, while version 
3.12.0 is a direct dependency.

Best regards,

Yukai zhao

Reply via email to