【问题标题】:How to get mvn dependecy tree to filter dependencies with specific version如何获取 mvn 依赖树以过滤特定版本的依赖项
【发布时间】:2017-12-11 08:43:55
【问题描述】:

是否有任何 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 的依赖项分开,它会让我们的工作变得轻松。

注意这些是传递依赖,如果我使用排除 使用强制插件的传递依赖,它不会下载 最新的 jar 也是因为我没有在我的 呸

我需要的是传递依赖应该下载我需要的版本而不是旧版本。我无法修改传递依赖pom。

任何能提供一些启示的人都会受到赞赏。

【问题讨论】:

    标签: java maven


    【解决方案1】:

    你可以使用 grep:

     mvn dependency:tree -Dverbose -Dincludes=org.apache.httpcomponents:httpcore |grep "4.5.1"
    

    【讨论】:

    • hi Ivo grep 将简单地搜索版本。我需要版本的依赖树。我的意思是哪个依赖正在下载什么版本。还有一件事,因为我使用的是 windows grep 将没有用我试过 findstr windows.感谢您的帮助
    【解决方案2】:

    请查看maven-enforcer-plugin

    我们使用它来确保不会使用某些依赖项。例如

     <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>
    

    【讨论】:

    • 嗨 Chistian 我已经修改了这个问题。我需要这个传递依赖。我也看到了bannedTransitiveDependencies,但它没有帮助
    猜你喜欢
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 2019-12-22
    • 2019-09-07
    • 2019-12-25
    • 2016-07-29
    • 2012-03-30
    • 1970-01-01
    相关资源
    最近更新 更多