如何ependency:tree on 一件特殊的艺术品?

pu82cl6c  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(355)

标题说明一切。给定一个依赖项,如何得到它的依赖项树?
假设我想以组织为目标。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命令吗?

jfewjypa

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 作为分类器:


# retrieve and store the hibernate pom

mvn dependency:copy  -Dartifact=org.hibernate:hibernate-core:5.2.14.final:pom

# see the dependencty tree on the hibernate  pom

mvn -f target/dependency/hibernate-core-5.2.14.final.pom dependency:tree

两个注意事项:
即使工件在本地存储库中(在这种情况下,工件是首先安装的),它也可以工作。
可以将当前目录指定为输出目录,而不是默认路径 target/dependency-DoutputDirectory=. 旗帜。

相关问题