私は最近、NPM、Yarn、Paket、Cargoなどのパッケージマネージャーについて読んでいるときに、依存関係のバージョンロックファイルという概念を導入しました。私の理解は、すべての直接的および推移的な依存関係をリストするファイルですそれらの正確なバージョン番号は、後続のビルドが同等の依存関係のセットを使用することを保証します。これは、多くのパッケージマネージャーがコンセプトを持っているか、採用しているので、望ましい特徴であると思われます。なぜGradleやMavenに依存バージョンロックファイルがないのですか?
私の質問は、その後、次のとおりです。
はなぜMavenのか、Gradleのロックファイルを使用していませんか?もしそうなら、なぜ私はそれを見たことがありませんか?
パッケージマネージャの依存関係解決戦略のバージョン範囲を許可する賛否両論と正確なバージョンのみを許可する点は何ですか?
あなたのポンポンでバージョンを定義する場合依存関係ツリーは常に同じです。つまり、すべての推移的な依存関係を定義する必要はなく、大量の作業を節約できます。 Mavenでバージョン範囲を使用する場合を除いて(再現不可能なビルドとなる)、他のビルドシステムでも同様です。 – khmarbaise
もしあなたがあなたのコメントを精緻化したり、言い直したりすることができたら、おそらく。人々はそれが有用なコメントだと思っているように思えますが、私の質問にどのように答えているのか分かりません。 – jrahhali
単純な答えは:Maven、Gradleなどです。明示的なファイルとしてではなく、常に同じ方法で反復される依存関係ツリーのアイデアに基づいて実装されています。これは、ツリーが常に同じバージョンを持つことを意味します。すべての推移的および非推移的依存関係をバージョンで定義するためのファイルは必要ありません(BTW:MavenはMaven 1.Xのファイル内のすべてのものを定義するという概念を持っていました)... – khmarbaise