Java 获取maven依赖项(不包括测试依赖项)的列表
我想为我的maven项目获得一个所有依赖项的列表,但是没有使用maven 3.6.2的测试依赖项 列出我成功使用的所有依赖项Java 获取maven依赖项(不包括测试依赖项)的列表,java,maven,maven-3,Java,Maven,Maven 3,我想为我的maven项目获得一个所有依赖项的列表,但是没有使用maven 3.6.2的测试依赖项 列出我成功使用的所有依赖项dependency:tree或dependency:list 然后我尝试添加-DincludeScope=compile和-DexcludeScope=test作为参数。添加了这些之后,我仍然得到了测试依赖项 示例命令 mvn -f example/location/pom.xml dependency:tree -DincludeScope=compile -Dexcl
dependency:tree
或dependency:list
然后我尝试添加-DincludeScope=compile
和-DexcludeScope=test
作为参数。添加了这些之后,我仍然得到了测试依赖项
示例命令
mvn -f example/location/pom.xml dependency:tree -DincludeScope=compile -DexcludeScope=test
输出
...
...
...
\- junit:junit:jar:4.12:test
\- org.hamcrest:hamcrest-core:jar:1.3:test
父依赖项是测试,子依赖项是编译
我还发现了另一个问题。如果父依赖项是test
,那么我不想看到它的任何依赖项
...
...
| +- com.google.cloud:google-cloud-core-grpc:jar:1.52.0:test
| | +- com.google.auth:google-auth-library-credentials:jar:0.11.0:compile
如何删除所有测试依赖项及其子项
includeScope
和excludeScope
不是的参数,因此它们不会产生任何影响。根据您的maven插件依赖关系
versionscope
参数可能会起作用(请参阅):
mvn依赖项:tree-Dscope=compile
这个bug似乎与此相关:我认为不可能像您提到的那样。如果父依赖项是test
,子依赖项是compile
,我不想包含它。我已经更新了我的问题来说明这一点。我能看到它被完成的唯一方法(如果maven的特定参数不可能)是找出输出的缩进。如果父项是测试,则删除其所有子项。但是这样做不是很好。删除了grep
建议,在范围之间具有可传递依赖关系的设置中,它将不起作用。