如何dependency:tree 对特定神器?
How to dependency:tree on a specific artifact?
标题说明了一切。给定一个依赖项,我怎样才能得到它的依赖项树?
假设我想定位 org.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
及其依赖项丢失。
this online "tool" 完全符合我的要求。是否可以使用 mvn 命令来完成?
你得到的是预期。
当使用 includes
用户 属性 时,例如:-Dincludes=org.hibernate:hibernate-core
,输出显示 org.hibernate:hibernate-core
依赖关系 拉那个.
您想要相反的情况:显示 由 org.hibernate:hibernate-core
.
拉取的依赖项
要实现这一点:您需要执行 mvn dependency:tree
因为 org.hibernate:hibernate-core
POM.
因此,您应该使用 shell 进入本地存储库并执行该命令。
但这很麻烦:IDE Eclipse 和 IntelliJ 提供的 Maven 插件做得很好。
带有 m2e Eclipse 插件的示例。
在您的 pom.xml 的 m2 视图中,双击您要开发的依赖项。
完成了:
如果合适,Maven 的替代方法是通过将 pom
指定为分类器来使用 dependency:copy
目标:
#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
两个注意事项:
- 即使工件在您的本地存储库中(在这种情况下首先安装工件),它也能正常工作。
- 您可以使用
-DoutputDirectory=.
标志将当前目录指定为输出目录,而不是默认路径 target/dependency
。
标题说明了一切。给定一个依赖项,我怎样才能得到它的依赖项树?
假设我想定位 org.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
及其依赖项丢失。
this online "tool" 完全符合我的要求。是否可以使用 mvn 命令来完成?
你得到的是预期。
当使用 includes
用户 属性 时,例如:-Dincludes=org.hibernate:hibernate-core
,输出显示 org.hibernate:hibernate-core
依赖关系 拉那个.
您想要相反的情况:显示 由 org.hibernate:hibernate-core
.
拉取的依赖项
要实现这一点:您需要执行 mvn dependency:tree
因为 org.hibernate:hibernate-core
POM.
因此,您应该使用 shell 进入本地存储库并执行该命令。
但这很麻烦:IDE Eclipse 和 IntelliJ 提供的 Maven 插件做得很好。
带有 m2e Eclipse 插件的示例。
在您的 pom.xml 的 m2 视图中,双击您要开发的依赖项。
完成了:
如果合适,Maven 的替代方法是通过将 pom
指定为分类器来使用 dependency:copy
目标:
#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
两个注意事项:
- 即使工件在您的本地存储库中(在这种情况下首先安装工件),它也能正常工作。
- 您可以使用
-DoutputDirectory=.
标志将当前目录指定为输出目录,而不是默认路径target/dependency
。