标题说明一切。给定一个依赖项,如何得到它的依赖项树?
假设我想以组织为目标。hibernate:hibernate-core:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.24.Final</version>
</dependency>
因此,我想:
[INFO] | \- org.hibernate:hibernate-core:jar:5.4.24.Final:compile
[INFO] | +- org.jboss.logging:jboss-logging:jar:3.4.1.Final:compile
[INFO] | +- javax.persistence:javax.persistence-api:jar:2.2:compile
[INFO] | +- net.bytebuddy:byte-buddy:jar:1.10.17:compile
[INFO] | +- antlr:antlr:jar:2.7.7:compile
[INFO] | +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.2_spec:jar:1.1.1.Final:compile
[INFO] | +- org.jboss:jandex:jar:2.1.3.Final:compile
[INFO] | +- com.fasterxml:classmate:jar:1.5.1:compile
[INFO] | +- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] | +- org.dom4j:dom4j:jar:2.1.3:compile
[INFO] | \- org.hibernate.common:hibernate-commons-annotations:jar:5.1.2.Final:compile
我试过:
mvn dependency:tree -DgroupId=org.hibernate -DartifactId=hibernate-core -Dversion=5.4.24.Final
但它不起作用。 :tree
或者 :list
没关系。我想要的只是我的项目中依赖项的依赖项。
如果我 mvn dependency:tree -Dincludes=org.hibernate:hibernate-core
我得到:
[INFO] \- org.hibernate:hibernate-core:jar:5.4.24.Final:compile
缺少它的依赖项。
有一个在线的“工具”正是我想要的。可以用mvn命令吗?
1条答案
按热度按时间jfewjypa1#
你得到的是预期的。


当使用
includes
用户属性,例如:-Dincludes=org.hibernate:hibernate-core
,输出显示org.hibernate:hibernate-core
依赖关系沿着拉那个的依赖关系。您想要相反的结果:显示由
org.hibernate:hibernate-core
.要做到这一点:你需要执行
mvn dependency:tree
自从org.hibernate:hibernate-core
波姆。因此,您应该将shell放入本地存储库并执行该命令。但这是一个麻烦:eclipse和intellij为maven提供的ide插件做得很好。
m2e eclipse插件示例。
在pom.xml的m2视图中,双击要开发的依赖项。
就这样:
如果合适的话,maven-way的替代方法是使用
dependency:copy
指定目标pom
作为分类器:两个注意事项:
即使工件在本地存储库中(在这种情况下,工件是首先安装的),它也可以工作。
可以将当前目录指定为输出目录,而不是默认路径
target/dependency
与-DoutputDirectory=.
旗帜。