大型项目的Java依赖关系管理

时间:2012-09-06 14:02:52

标签: java dependencies

我希望我能够保持这个问题的具体性,我的工作团队目前正在讨论管理一个巨大项目(150多个依赖项~300mb)的依赖项的最佳方法。

我们有两个主要问题

  • 保持所有开发人员依赖关系相同,以便我们针对相同的文件进行编译
  • 确保项目(一旦编译完成)与相同的依赖项相混合

建议的两个想法是使用BirJar(所有依赖项在一个文件中),只是添加一个版本号并使用共享文件夹并指向每个人的机器在同一个地方。

或者在我们编译jar(罐子,jar,罐子)时包含jar中的所有依赖项,并且只有一个“没有依赖”的项目

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

有关大规模依赖管理的最佳做法是什么?

2 个答案:

答案 0 :(得分:9)

为什么不使用Maven及其dependency management

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

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

答案 1 :(得分:0)

如果您不喜欢/想要关注Maven项目结构......

如果您已经使用过Ant,那么最好的办法就是使用Ivy进行依赖管理。

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

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

来自:Ant dependency management