문제

I am using the dependency:analyze to detect dependency problems. But I have found a problem with the transitive dependencies because the plugin doesn't resolve this dependencies.

When I execute mvn dependency:tree, the output shows the transitive dependencies.

Dependencies

project A
  dependency B
project C
  dependency A

Outuput -> (project C - path)/ mvn clean install

[WARNING] Used undeclared dependencies found:
   dependency B: compile

Plugin

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <id>analyze</id>
            <phase>verify</phase>
            <goals>
                <goal>analyze-only</goal>
            </goals>
            <configuration>
                <failOnWarning>true</failOnWarning>
            </configuration>
       </execution>
   </executions>
</plugin>

Why the plugin doesn't detect the transitive dependency

도움이 되었습니까?

해결책

Dependency analysis works as expected.

Code in project C uses classes from project B but it does not directly depend on project B. It compiles only because it transitively depend on B through project A. Changing dependency of project A would break project C. This is what we are trying to avoid

This is not good, if the code uses classes from B, it should directly depend on B.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top