1

プロジェクト B に依存するプロジェクト A があります。プロジェクト B には、かなり長い間、バージョン番号 1.0.0-SNAPSHOT がありました。バージョン番号 1.0.0 のプロジェクト B をリリースした後、836 個の古いスナップショットを保持するにはサーバー上の多くのスペースが必要だったため、古いスナップショットをすべてリポジトリから削除しました。ただし、プロジェクト B のバージョン 1.0.0-SNAPSHOT が見つからないため、プロジェクト A は失敗します。

質問: Maven が 1.0.0 リリースをスナップショットと同等に有用であると見なさず、代わりにスナップショットを取得するのはなぜですか?

4

2 に答える 2

2

まあ、これはそれがどのように機能し、どのように設計されているかです。実際、バージョン 1.0.0 がバージョン 1.0.0-SNAPSHOT であるがリリースされていることはそれほど明白ではありません。一部の SNAPSHOT バージョンがリリースされていないか、SNAPSHOT のないアーティファクトの最終リリースが存在する可能性があります (デプロイされていないため)。

これらは実際には 2 つの異なるバージョンであるため、許可なくそれらの間で自動切り替えを行うべきではありません。実際、Maven は 1.0.0 がおそらく 1.0.0-SNAPSHOT の最終リリースであると推測し、(by による) リリース プロセス中にこれを提案するほど賢いですがmaven-release-plugin、コードの一部を開発する限り、それはまさにあなたが望むことを行い、 POM で必要な 1.0.0-SNAPSHOT バージョンが必要です。

于 2012-04-25T14:44:07.333 に答える
1

リリースはスナップショットと同等ではありません:(スナップショットは本質的に「開発」ビルドであるため、Mavenはどれを取得するかについて賢くしようとしません。スナップショットをリポジトリに戻すか、プロジェクトを変更する必要がありますリリース バージョン、特に 1.0.0 に依存します。

于 2012-04-25T14:44:49.390 に答える