2011-01-04 10 views
14

私たちはIDE用にIntelliJでMaven 3を使用しています。コンパイルの後に、外部ライブラリにSpring 2.0のものが含まれています。私がIntellijのMaven Projectsの依存関係を調べると、Spring 2.0に依存する人はいませんので、それに依存していると思われます。Mavenがjarファイルをインクルードした理由を調べる方法

私はこれをどのように追跡するのですか? mvn dependency:tree -Dverbose -Dincludes=spring-aopとさらに-Dincludes=springを実行しようとしましたが、私が知っているルートまたはサブモジュールのディレクトリから実行したときに結果が得られません。

答えて

12

-Dincludesに渡されたパターンが正しくないようです。 Maven Dependency Pluginのドキュメントから

は、-Dincludes構文はStrictPatternIncludesArtifactFilterによって定義されます。これはサブクラス化されたAbstractStrictPatternArtifactFilterのJavadocの、より

アーチファクトパターン構文は 形式のものである:

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

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

org.apache.*は、そのグループ idはorg.apache.で開始し、:::*-SNAPSHOTは、すべてのスナップショットに アーティファクトにマッチするすべての案件に一致します。

たぶん、あなたは-Dincludesなしmvn dependency:treeを実行し、それが春2.0関連の依存関係を示しているかどうかを確認する必要があります。あるいは、-Dincludesに適切なパターンを指定します。

9

検索しているフォーマットが間違っています。

mvn dependency:tree -Dverbose -Dincludes=:spring*:: 

またはこの(春から始まるgroupIdを持つすべての成果物を検索):

mvn dependency:tree -Dverbose -Dincludes=org.springframework 

(たartifactIdのorg.springframeworkを持つアーティファクトを検索)

これを試してみてください
+0

私は上記のコマンドを試して、特定のjarが含まれている理由を理解しようとしました。しかし、上記のmavenコマンドが実行され、ビルドが成功したと言っていますが、依存関係に関する情報はありません。 – Mahiz

3

intellijを使用して簡単に修正してみませんか? pom.xmlを開き、右クリック(コンテキストメニューを起動)し、UML>依存関係を表示(UMLプラグインを有効にしてください)を選択します。 Ideaはすべての重複する依存関係をマークし、ALT + Enterコンボを使用して依存関係を除外できます。 @see: http://blogs.jetbrains.com/idea/2010/05/maven-dependencies-diagram/

関連する問題