依存関係アルゴリズムに問題があります。依存関係は、厳密なバージョン スコープ ベースであることを除いて、Maven 依存関係に似ています。
例えば:
component A, version 1 depends on: component B, version 1~3; and component C, version 2~3
component D, version 1 depends on: component B, version 2~4; and component C, version 1~2
ここで、コンポーネント A のバージョン 1 とコンポーネント D のバージョン 1 をインストールするときに、依存関係を取得したいと考えています。それらはすべてコンポーネント B と C に依存しているため、B と C の正しいバージョンを取得するには正しいアルゴリズムが必要です。
さらに、コンポーネント A と D をアップグレードする必要がある場合があります。たとえば、次の新しいバージョンがあります。
component A, version 2 depends on: component B, version 3~5; and component C, version 4~5
component A, version 3 depends on: component B, version 6~7; and component C, version 4~5
component D, version 2 depends on: component B, version 3~4; and component C, version 3~4
ここで、アップグレード可能な A と D の正しいバージョンと、それらのすべての依存関係を取得するためのアルゴリズムが必要です。ここでの問題の 1 つは、コンポーネント A のバージョン 3 とコンポーネント D のバージョン 2 に、コンポーネント B の依存関係の競合があることです。
このような問題を解決する既存のアルゴリズムはありますか? または同様の(より簡単な)問題。何か提案はありますか?
大量のデータがあるべきではないため、パフォーマンスは考慮しないでください。
前もって感謝します!