Java 我如何知道为什么某个Jar被添加到我的项目中?
有没有办法向maven输入一个jar名称,并获得将其添加到我的项目中的jar的完整路径 您能做的最好的事情就是使用。Java 我如何知道为什么某个Jar被添加到我的项目中?,java,maven,Java,Maven,有没有办法向maven输入一个jar名称,并获得将其添加到我的项目中的jar的完整路径 您能做的最好的事情就是使用。 它不显示提取依赖项的JAR的完整路径。 相反,它显示当前Maven项目的依赖关系树。 因此,对于每个已解决的依赖项,您都可以知道拉动该依赖项的Maven模块/依赖项 使triogroupId artifactId版本标识的依赖项与本地存储库之间的映射非常简单 以下是一个项目的示例,该项目的依赖项为jmh: [INFO] --- maven-dependency-plugin:2.
它不显示提取依赖项的JAR的完整路径。
相反,它显示当前Maven项目的依赖关系树。 因此,对于每个已解决的依赖项,您都可以知道拉动该依赖项的Maven模块/依赖项 使trio
groupId artifactId版本
标识的依赖项与本地存储库之间的映射非常简单
以下是一个项目的示例,该项目的依赖项为jmh
:
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ map-benchmark ---
[INFO] davidxxx:map-benchmark:jar:1.0
[INFO] +- junit:junit:jar:4.7:test
[INFO] +- org.openjdk.jmh:jmh-core:jar:1.19:compile
[INFO] | +- net.sf.jopt-simple:jopt-simple:jar:4.6:compile
[INFO] | \- org.apache.commons:commons-math3:jar:3.2:compile
[INFO] \- org.openjdk.jmh:jmh-generator-annprocess:jar:1.19:compile
或者(注意:
如果不需要指定groupId,则不带前缀):
将输出:
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ map-benchmark ---
[INFO] davidxxx:map-benchmark:jar:1.0
[INFO] \- org.openjdk.jmh:jmh-core:jar:1.19:compile
[INFO] \- org.apache.commons:commons-math3:jar:3.2:compile
[INFO] ------------------------------------------------------------------------
详细标志指示依赖关系树显示冲突的
从解析的依赖项树中忽略的依赖项。在里面
在这种情况下,目标输出:
[INFO] [dependency:tree]
[INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
[INFO] +- org.apache.maven.reporting:maven-reporting-impl:jar:2.0.4:compile
[INFO] | \- commons-validator:commons-validator:jar:1.2.0:compile
[INFO] | \- commons-digester:commons-digester:jar:1.6:compile
[INFO] | \- (commons-collections:commons-collections:jar:2.1:compile - omitted for conflict with 2.0)
[INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile
[INFO] \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
[INFO] \- commons-collections:commons-collections:jar:2.0:compile
[信息][依赖关系:树]
[信息]org.apache.maven.plugins:maven依赖插件:maven插件:2.0-alpha-5-SNAPSHOT
[INFO]+-org.apache.maven.reporting:maven reporting impl:jar:2.0.4:compile
[INFO]| \-commons验证程序:commons验证程序:jar:1.2.0:编译
[INFO]\-commons-digester:commons-digester:jar:1.6:compile
[INFO]| \-(commons集合:commons集合:jar:2.1:compile-因与2.0冲突而省略)
[INFO]\-org.apache.maven.doxia:doxia站点呈现器:jar:1.0-alpha-8:compile
[INFO]\-org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
[INFO]\-commons集合:commons集合:jar:2.0:编译
检查
您可以使用以下maven命令搜索特定工件:
mvn依赖项:tree-Dincludes=所需的groupId:所需的artifactId
另外,如果您使用eclipse和m2eclipse插件(),那么有一个图形版本的依赖关系树,它将帮助您按jar名称过滤依赖关系树。见:
其他IDE中应该有类似的功能这是为什么还是什么时候?这完全改变了问题的含义。你唯一能做的就是分析版本控制中的历史记录,并查看何时添加依赖项…可能与软件中的更改有关…希望有一条很好的日志消息来描述…否则为什么不能通过此来回答…只有当。。。。 [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ map-benchmark --- [INFO] davidxxx:map-benchmark:jar:1.0 [INFO] \- org.openjdk.jmh:jmh-core:jar:1.19:compile [INFO] \- org.apache.commons:commons-math3:jar:3.2:compile [INFO] ------------------------------------------------------------------------
mvn dependency:tree -Dverbose -Dincludes=commons-collections
[INFO] [dependency:tree]
[INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
[INFO] +- org.apache.maven.reporting:maven-reporting-impl:jar:2.0.4:compile
[INFO] | \- commons-validator:commons-validator:jar:1.2.0:compile
[INFO] | \- commons-digester:commons-digester:jar:1.6:compile
[INFO] | \- (commons-collections:commons-collections:jar:2.1:compile - omitted for conflict with 2.0)
[INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile
[INFO] \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
[INFO] \- commons-collections:commons-collections:jar:2.0:compile