5

基本的なMavenの概念に関連する問題:

リリースされたら、プロジェクトのビルドが完全に再現可能であることを保証したいと思います。したがって、推移的なものを含むすべてのプロジェクトとプラグインの依存関係は、常に同じ方法で解決する必要があります。

残念ながら、依存関係がバージョン範囲で表されている場合はそうではありません。プロジェクトの直接の依存関係が設定されていても(versions:use-releasesを使用)、推移的な依存関係は将来、他の方法で解決できる可能性があります。

問題に対処する方法は?既知の解決策はありますか?

私はプラグインを作成することを考えていました。プラグインはリリース時にプロジェクトのすべての依存関係を別のファイルにダンプし、将来ビルドすると、ファイルから読み取られた依存関係が標準よりも優先されますmavenが依存関係を解決するために使用する方法。しかし、そのためのプラグインAPIはありません。したがって、ハッキングが必要になりますが、これは避けたいと思います。別の方法はありますか?

ありがとう、Lukasz

4

2 に答える 2

3

を使用してアーティファクトバージョンをフリーズします<dependencyManagement>。(あなたが言ったように)バージョン範囲を使用せず、サードパーティのライブラリ(依存関係)を使用する<dependencyManagement>場合でも、アーティファクトのバージョンを指定する際の優先順位が高くなります。

于 2012-06-19T14:34:25.823 に答える
0

簡単な解決策は次のとおりです。バージョン範囲を使用しないでください。これは悪い習慣です。説明されている問題が発生するからです。

于 2012-06-19T14:12:49.830 に答える