2013-07-16 92 views
6

我正在使用dependency:analyze来检测依赖关系问题。但是我发现传递依赖关系存在一个问题,因为插件没有解决这个依赖关系。Maven 2.1依赖:分析。传递依赖关系:使用未声明的依赖关系发现

当我执行mvn依赖关系:树时,输出显示传递依赖关系。

依赖

project A 
    dependency B 
project C 
    dependency A 

Outuput - >(项目Ç - 路径)/ MVN清洁安装

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

插件

<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> 

为什么插件未检测到传递依赖项

+0

没有真正足够的信息来回答你的问题。你期望的结果是什么?你分析过哪个项目? –

+0

我在Project C上执行“mvn clean install”。如果我将failOnWarning选项设置为false,则警告消失和执行无误。为什么插件没有检测到传递依赖关系 –

回答

5

依赖项分析按预期工作。

项目C中的代码使用了来自项目B的类,但它并不直接依赖于项目B.它仅仅是因为它通过项目A过渡依赖B.通过改变项目A的依赖项会破坏项目C.这就是我们正试图避免

这是不好的,如果代码使用类从B,它应该直接这里取决于B.

+0

我需要项目A依赖项,因为它包含公共库和代码 –

+0

这也很好,让C依赖于A和B. –

+0

不,我不应该这样做,而我试图与传递依赖关系一起工作。 –