2016-07-04 1 views
1

com.example.foo.barのものを除き、すべての成果物をcom.exampleに表示しようとしています。mvn依存関係があります:リストはサブグループ内のものを除き、グループ内のすべての成果物を出力しますか?

mvn dependency:treeのために、私はこれを行うことができます。

mvn dependency:tree -Dexcludes=*bar* -Dincludes=com.example.* 

をしかし、私がしようとすると:

mvn dependency:list -DexcludeGroupIds=com.example.foo.bar -DincludeGroupIds=com.example 

Mavenはまだbarのすべてを示しています。

質問dependency:treeの結果をlistを使用してミラーリングするにはどうすればよいですか?

答えて

1

treelistの包含/除外の主な違いは、前者がパターンと後者が完全に一致すると想定していることです。例えば

tree目標のincludesオプションは、値持つことができます。

各パターンのセグメントはオプションであり、完全なおよび部分*ワイルドカードをサポートしています。一方

list目標のincludeGroupIdsオプションは単純です:

カンマが含まれるようにGroupIdsのリストを分離しました。我々は唯一のcommonsを含むが、両方の目標のためにloggingを除外したい場合は

<dependencies> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
    </dependency> 
    <!-- other dependencies with different groupIds than the prefix org.apache --> 
    ... 
</dependencies> 

は、我々は実行する必要があります:

mvn dependency:tree -Dincludes=org.apache.* -Dexcludes=*logging* 

注適用ワイルドカード次の依存関係の例を考えると


両方のパターン。最初のものは2番目のものを除外しないので、両方のオプションが必要です。 list目標の

我々は我々が実際に何をしたいだけで一覧表示するので、この場合にのみ含めることは、十分だろう:

mvn dependency:list -DincludeGroupIds=org.apache.commons 
+0

だから、私はcom.example' 'のサブグループがわからない場合'com.example.foo'とそのサブグループが欲しくないことだけを知っているので、' list'を使うことはできません。 – Christian

+1

@Christian確かに、あなたはそれらを知る必要があります。そうでなければ、 'list'で一致させることはできません。 'tree'ははるかに柔軟性があり、代わりにパターンに依存しています。 –

関連する問題