7

を使用しdependency:analyzeて依存関係の問題を検出しています。しかし、プラグインはこの依存関係を解決しないため、推移的な依存関係に問題があることがわかりました。

mvn dependency:tree を実行すると、出力に推移的な依存関係が表示されます。

依存関係

project A
  dependency B
project C
  dependency A

出力 -> (プロジェクト C - パス)/ mvn clean install

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

プラグインが推移的な依存関係を検出しない理由

4

1 に答える 1

6

依存関係の分析は期待どおりに機能します。

プロジェクト C のコードは、プロジェクト B のクラスを使用していますが、プロジェクト B に直接依存していません。プロジェクト A を介して B に推移的に依存しているという理由だけでコンパイルされます。プロジェクト A の依存関係を変更すると、プロジェクト C が壊れます。これは、私たちが回避しようとしているものです。

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

于 2013-07-16T19:59:25.147 に答える