【问题标题】:How to automate discovering dependency conflict如何自动发现依赖冲突
【发布时间】:2019-10-29 10:43:43
【问题描述】:

我开发的 Java 应用程序应该在我无法直接访问的服务器上运行。有时会出现依赖冲突。我的意思是,在某些服务器上,应用程序运行良好,而在其他服务器上,相同的应用程序失败。并且错误表明库版本冲突。我希望应用程序通知库版本冲突,而不仅仅是与NoSuchFieldErrorNoSuchMethodErrorNoClassDefFoundError 等一起崩溃。 我可以通过mvn dependency:tree获取应用构建平台上的库列表 因此,我需要应用程序在其运行的平台上读取库版本,将其与构建平台上的库列表进行比较,并报告版本不匹配的情况。那么,应用程序如何在运行时定义库呢?或者是否存在更方便的方法来自动发现依赖冲突?

【问题讨论】:

    标签: java jar dependencies conflicting-libraries


    【解决方案1】:

    我相信您需要在部署之前解决此类问题。您不能依赖运行工具来保存。所以我建议在更早的阶段解决它们。

    如果你使用 maven 来管理依赖。你可以试试:

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <version>1.4.1</version>
            <configuration>
                <rules><dependencyConvergence/></rules>
            </configuration>
        </plugin>
    </plugins>
    

    然后

    mvn enforcer:enforce

    你可以阅读这个good material

    【讨论】:

    • 谢谢。实际上,我有一个不同的问题。我会更新问题。
    猜你喜欢
    • 2022-09-30
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2011-03-12
    • 2019-12-24
    • 2021-12-14
    • 2022-01-24
    相关资源
    最近更新 更多