kol*_*eek 5 java dependencies maven-2 jar
如何使用 Maven 或其他工具来查找提供特定 jar 的依赖项中的哪个依赖项?有时它们的依赖关系有三到四个深度。
如果您想找出给定项目的传递依赖项来自何处,那么Maven 依赖项插件确实是您的朋友。将其与includes参数一起使用,该参数允许指定以逗号分隔的工件列表来过滤序列化依赖关系树,或者使用 null 来不过滤依赖关系树。工件语法由 定义StrictPatternIncludesArtifactFilter。
关于语法,javadoc 写道:
工件模式语法的形式为
Run Code Online (Sandbox Code Playgroud)[groupId]:[artifactId]:[type]:[version]其中每个模式段都是可选的,并且支持完整和部分
*通配符。空模式段被视为隐式通配符。例如,
org.apache.*将匹配组 ID 以 开头的所有工件org.apache.,:::*-SNAPSHOT并将匹配所有快照工件。
这是一个示例(我想找到activation项目中工件的来源):
$ mvn dependency:tree -Dincludes=:activation::
[信息] 正在扫描项目...
[信息] ---------------------------------------------------------- ------------------------
[信息] 构建 Java EE 6 演示 - Petstore - 域
[信息]任务段:[依赖项:树]
[信息] ---------------------------------------------------------- ------------------------
[信息] [依赖项:tree {执行:default-cli}]
[信息] name.thivent.samples.javaee6.domain:domain:jar:1.0-SNAPSHOT
[信息] \- org.hibernate:hibernate-validator:jar:4.0.2.GA:runtime
[信息] \- javax.xml.bind:jaxb-api:jar:2.1:runtime
[信息] \- javax.activation:activation:jar:1.1:runtime
[信息] ---------------------------------------------------------- ------------------------
...
dependency:tree如果您正在使用M2Eclipse,它会提供一个很好的前端。
对于“更接近”的东西rpm --whatprovides(即无需搜索特定项目),您必须使用存储库搜索引擎。以下是activation-1.1.jar的示例(请参阅此工件由...使用部分)。