是否有任何maven命令可以帮助我过滤特定版本的依赖关系树。
例如:我有来自不同pom的http客户端 4.5.1,4.5.2,4.5.3
jar版本。
我可以通过过滤
来获取树 mvn dependency:tree -Dverbose -Dincludes=org.apache.httpcomponents:httpcore
如果我有很多使用旧版本的依赖项,那么排除那些对于多模块项目 来说是繁琐和笨拙的,如果我们有一个额外的过滤器来仅过滤4.5.1和4.5.2依赖项它会使我们的工作变得轻松。 。
请注意,这些是传递依赖项,如果我使用exclude on 使用enforcer插件的传递依赖,它不会下载 因为我没有使用我的依赖管理,所以最新的jar也是 POM
我需要的是传递依赖应该下载我需要的版本而不是旧版本。我不能修改传递依赖pom。
任何能够摆脱一些亮光的人都会受到赞赏。
答案 0 :(得分:3)
我们使用它来确保不会使用某些依赖项。 E.g。
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<exclude>commons-collections:commons-collections:[3.2.1]</exclude>
</excludes>
</bannedDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
答案 1 :(得分:0)
您可以使用grep:
mvn dependency:tree -Dverbose -Dincludes=org.apache.httpcomponents:httpcore |grep "4.5.1"