2009-10-06 5 views
6

私はantプロジェクトをmavenに変換しています。このプロジェクトは、非常に頻繁にリリースされるため、通常は1日に8〜10回の頻度で行われるため、通常は変換したプロジェクトとは異なります。非常に頻繁にリリースされている小さなプロジェクトでのバージョン管理

リリースによって、結果として得られるjarがパッケージ化され、本番環境に含まれることを意味します。このプロジェクトはの葉であるため、APIは公開されず、消費されるだけです。他にも2つのプロジェクトに対する依存度は、最大でもランタイムです。

私はバージョン管理方式持っているしたいと思います:

  • それは数が無意味であることから、プロジェクトに割り当てるどのバージョン番号について考えるように開発者を強制せずに展開するのは簡単ですが、
  • このプロジェクトの最新バージョンを依存関係として含めることは、依存関係のバージョンを絶えず増やすことなく簡単に実行できます。

ほとんどの場合それは、我々は他のプロジェクトのために使用しているmaven-release-pluginと競合するので、依存関係のバージョンは、-SNAPSHOTではないだろうが、私は提案を開いています。

答えて

5

実際にはx-SNAPSHOTバージョンを使用しても、maven-release-pluginを使用できます。あなたのリリースを準備し、x-SNAPSHOTからポームのバージョンを新しいバージョンに変更するには、をmvn release:performの前に使用してください(バージョンの使用を促すメッセージが表示されます)。このintroductionをmaven-release-pluginにチェックインして、release:preparerelease:performの概要を確認することができます。その後

、常に依存関係のバージョンを更新せずに、最新バージョンを含むように、あなたは我々が3.8 JUnitの範囲を指定し、次のスニペットのように、依存関係の範囲を使用することができます - JUnitの4.0:

<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>[3.8,4.0)</version> 
    <scope>test</scope> 
</dependency> 

バージョンの前または後カンマは必要ではなく、+/-無限を意味します。たとえば、[4.0,)は、4.0以上のバージョンを意味します。

個人的には、再現性の問題を引き起こし、ビルドをより壊れやすくすることができるため、依存関係の範囲をあまり使用したくありません。

しかし、あなたはそれらを使用するのに十分な理由があるかもしれません。

+0

お返事ありがとうございます。私はこのことをまったくやり遂げることになりますが、バージョンとリリースがこのプロジェクトにとって無関係であるという問題はまだあります。それは継続的な流れにあります。 –

+0

私の知る限りでは、あなたはここで2つの選択肢があります:1.スナップショットバージョンを使用して(継続的なフローに適しています)、リリースプラグインを忘れていますが、私はプロダクションコード2でこれを行いません。リリースプラグインを使用して、更新を選択しません)。途中で出会う解決策があるかどうかわかりません。 –

+0

+1バージョン範囲とリリースプラグインについては、他のオプションについてはこの回答をご覧ください:http://stackoverflow.com/questions/30571/how-do-i-tell-maven-to-use-the-latest-version-依存関係/ 1172371#1172371 –

関連する問題