首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mvn依赖:列表打印出组中的所有工件,除了子组中的工件?

mvn依赖:列表打印出组中的所有工件,除了子组中的工件?
EN

Stack Overflow用户
提问于 2016-07-04 10:49:54
回答 1查看 1.1K关注 0票数 1

我试图列出com.example中的所有工件,但com.example.foo.bar中的工件除外。

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

代码语言:javascript
复制
mvn dependency:tree -Dexcludes=*bar* -Dincludes=com.example.*

然而,当我尝试:

代码语言:javascript
复制
mvn dependency:list -DexcludeGroupIds=com.example.foo.bar -DincludeGroupIds=com.example

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-04 11:31:13

treelist的包含/排除之间的主要区别在于前者期望的是模式,而后者是精确匹配的。

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

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

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

逗号分隔的GroupIds列表要包括。

给定以下依赖项示例:

代码语言:javascript
复制
<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,那么我们应该运行:

代码语言:javascript
复制
mvn dependency:tree -Dincludes=org.apache.* -Dexcludes=*logging*

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

对于本例中的list目标,只有包含就足够了,因为我们只列出了实际需要的内容:

代码语言:javascript
复制
mvn dependency:list -DincludeGroupIds=org.apache.commons
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38182879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档