【问题标题】:Java Dependency Management For Large Projects大型项目的 Java 依赖管理
【发布时间】:2012-09-06 22:09:13
【问题描述】:

我希望我可以让这个问题足够具体,我的工作团队目前正在讨论管理大型项目的依赖项的最佳方式(150 多个依赖项 ~300mb)。

我们有两个主要问题

  • 保持所有开发人员依赖项相同,以便我们针对相同的文件进行编译
  • 确保项目(编译后)针对相同的依赖项进行编译

已提出的两个想法是使用 BirJar(所有依赖项都在一个文件中),只需向其添加版本号,并使用共享文件夹并将每个人的机器指向同一个位置。

或者在我们编译它时将所有依赖项包含在 jar 中(一个 jar、of jars、of jars)并且只有一个“没有依赖关系”的项目

有人还提到设置 Ivy 的内部版本并指向所有代码以从那里提取依赖项。

关于大规模依赖管理的最佳实践是什么?

【问题讨论】:

    标签: java dependencies


    【解决方案1】:

    你为什么不使用 Maven 和它的 dependency management

    您可以指定每个依赖项、其特定版本及其范围(编译时、测试、部署等)。您可以提供一个主控 pom.xml(配置文件)来指定这些,并且开发人员可以在需要时覆盖(例如,评估新版本)。

    例如我指定了一个 pom.xml,详细说明了我需要的特定 jar 及其版本(或范围)。依赖的 jars 会自动确定/下载。我可以指定这些 jar 中的哪些用于编译与部署等。如果我使用 Nexus 等集中式存储库,我可以构建我的人工制品(例如库)并将其部署到 Nexus,它将变得可用供其他开发人员以与第 3 方库等完全相同的方式下载。

    【讨论】:

    • 您能概括一下它的作用吗? (也许在“故事”或工作流程中?)
    • 我对此进行了扩展,并包含了一个指向 Maven(介绍)和 Nexus 的链接
    • 这听起来很棒,感谢您提供的信息!我正在进一步研究 Maven 信息并将向团队报告!非常感谢。
    【解决方案2】:

    如果您不喜欢/不想遵循 Maven 项目结构...

    如果您已经使用 Ant,那么最好的选择是使用 Ivy 进行依赖管理。

    http://ant.apache.org/ivy/

    它为依赖操作提供了一组丰富的 ant 任务。

    来自:Ant dependency management

    【讨论】:

      猜你喜欢
      • 2011-06-16
      • 2010-11-30
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      相关资源
      最近更新 更多