让mvn dependency:list打印出组中的所有工件,除了子组中的工件



我试图列出com.example中的所有工件,除了com.example.foo.bar中的那些。

对于mvn dependency:tree,我可以这样做:

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

然而,当我尝试:

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

Maven仍然列出bar中的所有内容。

问题:如何使用list镜像dependency:tree的结果?

treelist的include/exclude的主要区别在于前者期望的是模式,而后者期望的是精确匹配。

例如,tree目标的includes选项可以有一个值:

,其中每个模式段都是可选的,并支持全部和部分*通配符。

另一方面,list目标的includeGroupIds选项很简单:

要包含的groupid列表,以逗号分隔。


给出如下依赖项示例:

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

如果我们想只包含commons而不包含logging,我们应该运行:

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

注意应用于两个模式的通配符。我们需要两个选项,因为第一个不排除第二个。

对于本例中的list目标,只包含就足够了,因为我们只列出了我们真正想要的:

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

相关内容

  • 没有找到相关文章

最新更新