【问题标题】:Pinning results of Ivy resolution常春藤分辨率的固定结果
【发布时间】:2015-06-20 18:37:45
【问题描述】:

所以 bundler 有一个 Gemfile.lock 文件的概念,它将在成功解决依赖关系后固定 Ruby gems 的版本,这样其他人的后续安装就不必经过解析过程,只需下载确切的版本直接地。在 Java 世界中这个等价物是什么?如何解决依赖关系,然后与其他所有人共享这些已解决的依赖关系,并确保每个开发人员都使用相同的库的基线版本?

【问题讨论】:

    标签: java caching dependency-management ivy


    【解决方案1】:

    Ruby 项目通常作为源代码发布,在安装时下载依赖项。这创建了一个捕获版本的完整依赖树的需求。

    另一方面,Java 项目通常发布包含软件和依赖项的自包含二进制文件(例如 WAR、EAR)。源代码与二进制文件是分开的。

    希望这可以解释为什么 Ivy 和 Maven 没有对项目的每个版本都唯一的锁定文件。

    【讨论】:

    • 这是一个很好的答案,但并没有真正回答我的问题。除了重写 .classpath 和其他 xml 文件之外,我还没有找到一种很好的方法来确保所有开发人员框上的所有依赖项都相同。如果在任何地方都有 + 依赖项,那么根据人们实例化他们的项目依赖项的时间,结果可能会有很大的不同。
    • @davidk01 我完全得到了你要找的东西,但你不会从 Ivy 或 Maven 那里得到它。 Java 开发人员通常使用存储在通用 Maven 存储库中的二进制文件进行共享。正是这个共享存储库确保了所有开发人员机器上的依赖关系都是相同的。没有好坏之分,只是方法不同。
    猜你喜欢
    • 2014-09-02
    • 2010-11-12
    • 2023-04-07
    • 2013-04-26
    • 2018-07-07
    • 2012-01-13
    • 2012-11-16
    • 2017-08-30
    • 2015-05-18
    相关资源
    最近更新 更多