mvn dependency:list 是否打印出组中除子组中的工件之外的所有工件?
Have mvn dependency:list print out all artifacts in a group except for those in a sub-group?
我正在尝试列出 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
的结果?
tree
与 list
的 include/excludes 之间的主要区别在于前者需要 模式 而后者则完全匹配。
例如,tree
目标的 includes
选项可以有一个值:
where each pattern segment is optional and supports full and partial * wildcards.
另一方面,list
目标的includeGroupIds
选项很简单:
Comma separated list of GroupIds to include.
给定以下依赖关系示例:
<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
我正在尝试列出 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
的结果?
tree
与 list
的 include/excludes 之间的主要区别在于前者需要 模式 而后者则完全匹配。
例如,tree
目标的 includes
选项可以有一个值:
where each pattern segment is optional and supports full and partial * wildcards.
另一方面,list
目标的includeGroupIds
选项很简单:
Comma separated list of GroupIds to include.
给定以下依赖关系示例:
<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