在 Git 或 Mercurial 中管理多个依赖项目的最佳方法是什么?



我有十几个相互依赖的Java项目,我经常对它们进行横切。然而,许多项目都是可以彼此独立使用的库。

现在我使用mercurial subrepos,除了很少有第三方工具支持它之外,它工作得很好——很难设置代码审查工具、持续集成等。

解决这种情况的最好方法是什么?将所有内容拆分为单独的项目并构建单独的jar ?迁移到git并使用git子存储库?把所有的东西都签入到一个单独的repo中,然后接受我必须签出所有的东西才能使用任何东西?别的吗?

我认为最好的方法是削减依赖关系,以便它们可以作为外部jar引用。这样,当您进行潜在的破坏性更改时,您不必立即修复受影响的区域。由于它们依赖于先前构建的jar,因此可以适当地隔离代码。如果您使用像Maven这样的工具来管理您的依赖项,您还将受益于更容易地跟踪您的jar的不同版本的能力。

如果子项目足够自治,我建议将它们设置为具有单独VCS仓库的单独maven项目。

这将为您提供与工作依赖管理相匹配的模块性。

最新更新