2013-07-16 151 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

不,我不應該這樣做,而我試圖與傳遞依賴關係一起工作。 –