我的组织正在研究在多项目配置中使用 Apache Ivy 进行依赖管理。我们有一个主项目(称为 MAIN),大部分开发都在其中进行,还有一些辅助库项目(称为 LIBPROJ),我们将它们保存在单独的存储库中。我们现在要做的是在库项目发生变化时为它们构建 jar,并将它们提交到主项目,但这很头疼,并导致项目膨胀。
看起来使用像常春藤这样的东西很合适。我们设想使用我们的 Jenkins 服务器自动为 LIBPROJ 构建一个新的库 jar 并将其发布到 ivy,然后使用“latest.integration”版本自动将最新版本的 LIBPROJ 拉入 MAIN。但是,如果我们必须一分为二才能找出问题何时出现,这怎么能行呢?
我现在能想到的唯一方法是在对 LIBPROJ 进行更改时更改我们在 MAIN 中依赖的 LIBPROJ 的版本,但这并不比检查 jar 本身好多少。
我担心这一点的原因是因为在查看旧版本的 MAIN 的情况下,如果我只是检查一个,它将无法构建和运行,因为它要求最新的构建,即使是我的修订版我现在看的可能几天/几周/几个月不同步。这将破坏任何类型的二等分工具(例如在 git 或 mercurial 中),这是我真的不想做的事情。