web-dev-qa-db-ja.com

Maven依存関係プラグインの「未使用の宣言された依存関係が見つかりました」という警告を抑制します

maven-dependency-plugin は、コンパイル時に警告を生成することにより、コンパイル時に未使用の依存関係であると考えられるものを識別します。

[WARNING] Unused declared dependencies found:
[WARNING]    org.foo:bar-api:jar:1.7.5:compile

場合によっては、このメッセージは誤検知であり、依存関係は推移的に必要になります。

質問pom.xmlでこれが当てはまることをどのように識別できますか?

8
vpiTriumph

Pomで ignoredDependencies 要素を構成する必要があります。

無視される依存関係のリスト。このリストへの依存関係は、「宣言されているが未使用」および「使用されているが宣言されていない」リストから除外されます。フィルタの構文は次のとおりです。

[groupId]:[artifactId]:[type]:[version]

ここで、各パターンセグメントはオプションであり、完全および部分的な*ワイルドカードをサポートします。空のパターンセグメントは、暗黙のワイルドカードとして扱われます。 *

公式によっても指定されているように 依存関係分析から依存関係を除外する 。構成例は次のとおりです。

<build>
    <plugins>
        <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.10</version>
            <executions>
                <execution>
                    <id>analyze-dep</id>
                    <goals>
                        <goal>analyze-only</goal>
                    </goals>
                    <configuration>
                        <ignoredDependencies>
                            <ignoredDependency>org.foo:bar-api:jar:1.7.5</ignoredDependency>
                        </ignoredDependencies>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
12
A_Di-Matteo

mvn dependency:treeを使用して依存関係を評価できます。

参照: https://maven.Apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html

1
npn_or_pnp

提供されたスコープを使用してみてください

提供これはコンパイルによく似ていますが、実行時にJDKまたはコンテナーが依存関係を提供することを期待していることを示します。たとえば、Java Enterprise EditionのWebアプリケーションを構築する場合、サーブレットAPIおよび関連するJava EEAPIへの依存関係を提供されたスコープに設定します。 Webコンテナはこれらのクラスを提供します。このスコープは、コンパイルおよびテストクラスパスでのみ使用可能であり、一時的なものではありません。

1
supersingh05

Maven-dependency-pluginバージョン2.6以降、 sedDependencies タグを使用して、使用されている依存関係を強制することができます。

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <configuration>
        <usedDependencies>
            <dependency>groupId:artifactId</dependency>
        </usedDependencies>
    </configuration>
</plugin>
1
Manuel Romeiro

それは私が探していたものとほぼ同じでしたが、もう少し次のように指定していると思います。

<execution>
  <goals>
     <goal>analyze-only</goal>
  </goals>
  <configuration>
  <failOnWarning>true</failOnWarning>
  <ignoredUnusedDeclaredDependencies>
      <ignoredUnusedDeclaredDependency>org.reflections:reflections:*</ignoredUnusedDeclaredDependency>
  </ignoredUnusedDeclaredDependencies>
  <ignoredUsedUndeclaredDependencies>
      <ignoredUsedUndeclaredDependency>junit:*:*</ignoredUsedUndeclaredDependency>
  </ignoredUsedUndeclaredDependencies>
  <ignoreNonCompile>false</ignoreNonCompile>
  <outputXML>true</outputXML>
  </configuration>
 </execution>

したがって、これはほぼ同じですが、どの種類の依存関係を無視する必要があるかについてより具体的です

0
user9130454