7

今日、プロジェクトのリリースを行っているときに、ネクサスで断続的な問題が発生していたため、間に release:perform コマンドが失敗しました。release コマンドは、1 つの pom ファイルのみを nexus にアップロードできます。

現在、nexus の問題は解決されており、リリースを試みていますが、pom ファイルが既に存在し、スナップショット バージョンではないため失敗し、nexus にアクセスできないため、そのファイルを削除して最初からやり直すことができます。 .

ファイルが既に存在する場合は release:perform を続行し、これを無視して残りのアップロードを続行するように、引数を渡す方法はありますか。

そのようなタイプのオプションを探しましたが、何も見つかりませんでした。

私の最後のリソースは、リリースを再開することです。これにより、バージョン番号が上がりますが、バージョンを上げる必要がない他のアプローチがあるかどうかを理解したいと思います。

私はMaven 2.2.1を使用しています

4

2 に答える 2

10

これが私が過去にこれをどのように処理したかです。このrelease:performコマンドは、SCM プロバイダー (SVN など) からタグをチェックアウトします。これはtarget/checkoutそのプロジェクトのディレクトリで行われます - リリースされたタグの正確なコピーが何であれ、pom ファイルなどに正しいバージョン番号が含まれている必要があります。

そのディレクトリ (target/checkoutリリースを開始したディレクトリ内) に移動すると、そこで簡単に実行でき、mvn deployそのバージョンをコンパイルしてパッケージ化し、Nexus インスタンスにアップロードする必要があります。

ディレクトリがない場合は、フェーズの一部として作成されたタグを SCM システムから新しいディレクトリにtarget/checkoutチェックアウトし、そこで実行できます。release:preparemvn deploy

SCM のタグは既に作成されているので、あとは実際にリリースをコンパイル、パッケージ化、および展開するだけです。これはまさにmvn deploy行うべきことです。

の呼び出し中にビルド用の追加パラメーター (プロファイルをアクティブ化するためなど) を指定したmvn release:perform場合は、 を実行するときにこれらも指定する必要がありますmvn deploy

このアプローチを使用すると、 の一部として既にタグ付けされているものをアップロードするだけなので、バージョン番号を変更する必要はなく、同じままにすることができますmvn release:prepare

于 2013-03-21T14:31:12.433 に答える
0

古いアーティファクトを削除するよう管理者に依頼することをお勧めします。コードをチェックアウトして実行するだけで、タグからコードを再デプロイできます。

mvn deploy

またはリリースをロールバックします。

mvn release:rollback

そして、いつものようにやり直します。

サイズが一致しない場合は、リモート リポジトリから古いアーティファクトを削除することが不可欠です。リリース リポジトリでは、サーバー側で明示的にオンに切り替えられていない限り、アーティファクトの再デプロイは許可されません。

さらに、@nwinkler の回答もかなり良いです。

于 2013-03-21T14:36:41.900 に答える