Mavenプロジェクトのバージョンを変更し、このバージョンをリリースしてから_*-SNAPSHOT
_開発に戻るための最良の方法は何ですか。
現在、私は次のことをしています:
pom.xml
_から現在のバージョン(ほとんどの場合SNAPSHOT
で)を取得しますmvn -DnewVersion=<something> versions:set
_)、質問で説明されているルールを尊重 パッチのMavenアーティファクトバージョンmvn:install
_からレポに送信SNAPSHOT
後置記号を追加して、バージョンの名前を再度変更します。私は何か間違っていることや非効率的なことをしていると強く感じています。
maven-release-plugin を使用して、アーティファクトをリリースする必要があります。自動的にリリースプラグインによってすべてのバージョンがインクリメントされます。例外は、1.0.3-SNAPSHOTから1.1.0-SNAPSHOTに移行する場合です。 Mavenを使用した開発のスケジュールは次のとおりです。
1.0.0-SNAPSHOT
1.0.0
1.0.1-SNAPSHOT
1.0.1
1.0.2-SNAPSHOT
1.0.2
..
SNAPSHOTからリリースバージョンへのステップに進むには、mavenリリースプラグインを使用する必要があります。以下を使用するだけでアーティファクトをリリースできます。
最初の一歩:
mvn release:prepare
最後のステップ:
mvn release:perform
デフォルトを受け入れたい場合は、次のように-Bを追加するだけです。
mvn -B release:prepare
または、これらの手順を1つの手順にまとめることができます。
mvn -B release:prepare release:perform
上記は、CIソリューション内からも使用できます。
Mvn installの使用は、アーティファクトをローカルリポジトリにインストールすることのみを目的としています。リポジトリマネージャのような実際のものを使用している場合(これをお勧めします)、以下を使用する必要があります:
mvn deploy
リリースプラグインを使用するための要件の1つは、pomでscmエリアを構成することです(バージョン管理を使用していることを望みますか?)。
リリース段階をさらに制御したい場合、maven-release-plugin(mrp)はあまり役に立ちません。
その場合、 modified versions-maven-plugin を使用してバージョンをインクリメントし、SNAPSHOTサフィックスを追加/削除することもできます 。
これらの新機能のおかげで、mrpと同じことを行うスクリプトを作成できますが、各ステップを完全に制御できます。
たとえば、mrpは、変更されたバージョンをコミットしてから実際にビルドしようとします。ビルドが失敗した場合、そのコミットを元に戻す必要があります。SVNの場合は、別のrevert-commitを実行する必要があります。
注:私はインクリメント関数の元の作成者ではありません。 githubページに記載されているように、autoincrement-versions-maven-pluginから採用しました。