私の組織は、マルチプロジェクト構成での依存関係管理に Apache Ivy を使用することを検討しています。ほとんどの開発が行われるメイン プロジェクト (MAIN と呼びます) と、別のリポジトリに保持するいくつかのヘルパー ライブラリ プロジェクト (LIBPROJ と呼びます) があります。現在私たちが行っているのは、ライブラリ プロジェクトが変更されたときにその jar を作成し、それらをメイン プロジェクトにコミットすることですが、これは大きな頭痛の種であり、プロジェクトの肥大化につながります。
アイビーのようなものを使用するのが適しているようです。Jenkins サーバーを使用して LIBPROJ 用の新しいライブラリ jar を自動的に構築し、それを ivy に公開し、「latest.integration」バージョンを使用して LIBPROJ の最新バージョンを MAIN に自動的に取り込むことを想定しています。しかし、いつ問題が発生したかを調べるために二分する必要がある場合、これはどのように機能するのでしょうか?
現時点でこれを行う唯一の方法は、LIBPROJ に変更が加えられるたびに MAIN で依存している LIBPROJ のバージョンを変更することですが、それは jar 自体をチェックインするよりもはるかに優れています。
私がこれについて心配している理由は、古いバージョンの MAIN を見る場合、1 つだけチェックアウトすると、最新のビルドを要求しているため、ビルドして実行することができないためです。今見ているのは、数日/数週間/数か月ずれている可能性があります。これにより、あらゆる種類の二分ツール (git や mercurial など) が壊れてしまいます。これは、私が本当にやりたくないことです。