11

古いプロジェクトをmavenに移行した新しいmavenプロジェクトを作成する必要があります。だから私はこのような構造を得ました

parent
|
\-- project 1
|
\-- project 2

project 1大量の依存関係がありproject 2、それらの多くは互いに共通しています。私が疑問に思っているのは、インターネットで見つけることができなかったのですが、これらの一般的な依存関係を見つけて、それらを親 pom に移行できるツールがあるかどうかです。

たとえば、このツールに次のような要素を持つ 2 つの poms を指定すると、

... PROJECT 1 POM
<dependencies>
   <dependency>
       <groupId>com.foo</groupId>
       <artifcatId>A</artifactId>
       <version>1.0.0</artifactId>
   </dependency>
   <dependency>
       <groupId>com.foo</groupId>
       <artifcatId>B</artifactId>
       <version>1.0.0</artifactId>
   </dependency>
</dependencies>
...

.. PROJECT 2 POM
<dependencies>
   <dependency>
       <groupId>com.foo</groupId>
       <artifcatId>B</artifactId>
       <version>1.0.0</artifactId>
   </dependency>
   <dependency>
       <groupId>com.foo</groupId>
       <artifcatId>C</artifactId>
       <version>1.0.0</artifactId>
   </dependency>
</dependencies>
...

出力を

.. OUTPUT FROM COMPARING BOTH
<dependencies>
   <dependency>
       <groupId>com.foo</groupId>
       <artifcatId>B</artifactId>
       <version>1.0.0</artifactId>
   </dependency>
</dependencies>
...
4

2 に答える 2

2

私はそれを行うためのツールを知りません..しかし、あなたは古い学校でそれを行うことができます

1.すべての依存関係の解決:mvn dependency:resolve

2.並べ替えられたすべての依存関係を繰り返し表示せずにリストし、モジュールごとにチェックします。

mvn -o dependency:list | grep ":.*:.*:.*" | cut -d] -f2- | sed 's/:[a-z]*$//g' | sort -u

3.次に、すべてのモジュールで探すことができます

mvn dependency:tree -Dverbose -Dincludes=commons-collections --> for example
于 2013-10-01T14:46:11.860 に答える