0

プロジェクト「P」は、プロジェクト「X」バージョン LATEST に依存しています。X は jar "A" バージョン LATEST に依存しています。

プロジェクト P をビルドすると、現在 jar である X の正しい (LATEST) バージョンがプルダウンされます。しかし、X をビルドしようとすると、Maven は X が jar A に依存していることに気づき、A を取得しようとするでしょう。

P をビルドする際に、X を取得してビルドすると、X が自身をリポジトリに公開したときに X によって使用されたバージョンの A がプルダウンされるように強制したいと考えています。X がリポジトリに公開された時点よりも新しい A の最新バージョンを取得したくありません。

このシナリオに対処するには、複数の方法があると考えています。X を .war としてビルドすることもその 1 つだと思います。(私はプロジェクト X を管理しており、必要に応じてそれを .war としてビルドできます)、他の提案を聞いて喜んでいます。X が .war であり、.war のビルド時に使用された A のバージョンがある場合、P がビルドしようとしているときに、Maven は A の新しいバージョンがあるかどうかを確認しようとしますか?

4

2 に答える 2

0

スナップショットの全体的な概念は、タイムスタンプを中心に展開しています。SO ビルド中に新しいスナップショット バージョンが利用可能な場合、それがダウンロードされます。唯一のオプションはオフラインモードでビルドすることですが、私はそれを思いとどまらせます.

別のアプローチでは、ワークスペースにすべての依存プロジェクトを含め、これらのプロジェクトの依存関係をメイン プロジェクトに追加できます。現在、maven はこれらの jar をダウンロードせず、これらのプロジェクト内のファイルを参照します。

于 2013-10-02T17:08:26.327 に答える
0

X が依存する A のバージョンをロックダウンしていない場合は、さらに明確にすることなく、中心にある A の絶対最新バージョンを使用します。A のバージョンを自分で明示的に指定することはできますが、「以前は最新の A だったものを使用する」ということはありません。

プロジェクト X を管理していると言うので、必要な A の正確なバージョンを指定する X の新しいバージョンをリリースする必要があります。Maven でのスナップショットの依存関係は、深刻なアンチパターンです。

于 2013-10-02T17:07:06.517 に答える