11

バッチタスクプラグインを使用してMavenリリースを内部リポジトリに使用するようにHudsonを設定しています。私はそれを介してそれをやっています:Hudson経由のMavenリリース

私は人々が使用した他の方法とその賛否両論に興味があります。また、どんな嫌な人も出てきました。

答えて

8

:-)明らかに長所と短所を持つ手動でのリリースを引き起こしました。最初にロールバックする必要がある場合は、元のリリースの場所に戻ってやり直すことが簡単にできます。第二に、プロセスの一部としてすべてのスナップショットの依存関係を解決する必要があるためです。

私たちの開発プロセスでは、修正プログラムでアップグレードが必要になるまで、以前のリリースバージョンで現在のビルドの外部に依存関係が残っています。つまり、Nexus、Mavenなどをリリースすると、スナップショットが表示され、最初に離してリリースする必要があることを意味します。このプロセスは、最後のリリース以降に変更された内容に基づいて異なるため、実際には自動化することはできません。

つまり、ビルド専用の特別なマシン(Sonatypeは単なるVM)です。これは、ビルドに偶発的に影響する環境変化がないことを保証するために行われます(jdkの変更のような)。また、いつでも準備ができているため、誰でも簡単にリリースプロセスを開始することができます。

+3

悲しいことに、マニュアルリリースは技術的には受け入れられるが政治的に受け入れられない解決策だと私は思う。 Sonatype _personally_の上級者は、私たちが手作業でリリースを行うことを提案しました。 – sal

+5

別の方法として、手作業で目標を準備するか、少なくともリリース:prepare -Ddryrun = trueを実行してすべての基準が完全であることを確認してから、ビルドプロセスを開始し、それはうまくいくでしょう。 –

+2

私はその考えが本当に好きです。 release:prepare -Ddryrun = trueを最初に実行させると、私たちが持つ可能性のある問題のほとんどを防ぐことができます。 – sal

0

は、私はいつも、私はいくつかの理由のために手で常にリリースを行う傾向があった

0

私はHudson Mavenリリースプラグインを試してきましたが、私はビルドファイルにパスワードをハードコードするような邪悪なことなしに、リリースを適切に評価することに少し挑戦しています。

2

最近、m2releaseプラグインが私の注目を集めました。良いと思った。しかし、私は自分のリリースプロセスが完全に«ポン・ツーフリー・フリー»であることが好きでした。私はそれによって意味することは、我々は完全な解放処理するために、4つの入力パラメータを提供しなければならないということである:(例:1.0.0)

  1. リリースバージョンを
  2. 新開発バージョン(例1.0.1-。 SNAPSHOT)
  3. SCMにおける放出タグ(例:リリース1.0.0または1.0.0)
  4. SCM
  5. のタグベースパスを

第2に許容されるデフォルト値を有しています。バグ修正バージョンの数字にバンプするバージョンは、私にとっては完璧です。

番号4は、pomで指定できます。それは変更されません。

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <configuration> 
     <tagBase>https://example.com/svn/myProject/releases</tagBase> 
    </configuration> 
</plugin> 

3つ目は、ボタンを押してリリースを完全に自動化できないようにすることです。 、

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <configuration> 
     <tag>release-${pom.version}</tag> 
     <tagBase>https://example.com/svn/myProject/releases</tagBase> 
    </configuration> 
</plugin> 

を今これは私が必要なものだけかもしれませんが、私はで-snapshotとSVNのタグを持つ終わる:デフォルトのリリースタグラベルは、私たちはそれを指定する必要が私たちのためにそれを行うことはありません終わり。 :(私はHudsonのジョブ設定でタグパラメータを渡す必要があります。さらに、私が作るリリースごとに変更する必要があります...私は必要なものではありません。


だから、最終的には、ハドソンのMaven2をタイププロジェクト+ m2releaseのハドソンプラグイン+ Mavenのリリースが正しく設定プラグイン持つことは、私がこれまで見てきたすべてのリリースプロセスの母です。完璧ではありませんが、それは私にたくさんの頑張った仕事を助けました。

JS。

+0

現在のバージョンのmaven-release-plugin(2.2.1)には、問題#3を解決する新機能があります。 「デフォルトのタグ名のフォーマットを上書きする」セクションをチェックしてください:http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html –

+0

あなたのpom.xmlには、 ' [email protected]{project.version}'を指定します。そうでない場合は、SNAPSHOTのバージョンmy Mavenに置き換えられます。 –