バージョンの種類と使い分け
メジャーバージョン、マイナーバージョン、パッチバージョン
バージョンは通常、次のように数値とピリオドを用いて記載します。Mavenでもこの方法に従います。 ピリオドはいくつでも使うことができますが、特に書式にこだわりがない場合、Semantic Versioning 2.0.0に従い左から順にメジャー・マイナー・パッチとしておくとよいでしょう。
1.0
1.2.3
メジャーバージョンは機能に大きな変更があった場合、マイナーバージョンは後方互換性を保つ変更があった場合、パッチバージョンはバグ修正が行われた場合に大きくなります。 これらの数値は 1.10.12
のように2桁以上になることも可能です。
安定バージョン
もし多くの人に使ってほしい安定版を公開するなら、安定バージョンの公開を検討しましょう。 後述するmaven-release-plugin
を使えば、安定バージョンが満たすべき条件を自動的に検証してくれます。
安定バージョンとは、前述のように数値とピリオドだけで構成されたものです。 反面、実装やインタフェースが安定しない開発途上のものを公開するなら、修飾子を用いて安定版でないことを明示するとよいでしょう。
SNAPSHOT修飾子
もっとも代表的な修飾子が SNAPSHOT修飾子 です。
バージョンにSNAPSHOT修飾子を含めることで、使い手とMavenに対して安定版ではないことを伝えることができます。 修飾子は次のように、半角ダッシュを使ってバージョン番号の後ろに付記します。 大文字でも小文字でも構いませんが、慣習として大文字を使用することが多いようです。
1.2.3-SNAPSHOT
1.0-snapshot
artifactは通常1バージョンにつき1度しかdeployできませんが、SNAPSHOT修飾子を利用したバージョンは同じバージョンで何度も異なるartifactをデプロイできます。 これにより、利用者に対して 常に最新の開発版を提供できます 。
その他の修飾子
Maven3は他にもバージョンに特別な意味を持たせるための修飾子を提供しています。 修飾子を不安定な順(古い順)に並べると、次のとおりです。 RCはリリース候補(Release Candidate)、SPはサービスパック(Service Pack)の略です。
alpha
(短縮表記としてa
を利用可能)beta
(短縮表記としてb
を利用可能)milestone
(短縮表記としてm
を利用可能)rc
orcr
snapshot
(前述)ga
orfinal
(修飾子なしと同様)sp
たとえばバージョン 1.2.3
の開発過程において、次の順で修飾子を利用できます。
1.2.3-alpha1
,1.2.3-alpha2
, ... (1.2.3
のアルファ版)1.2.3-beta1
,1.2.3-beta2
, ... (1.2.3
のベータ版)1.2.3-m1
,1.2.3-m2
, ... (1.2.3
のマイルストーン版)1.2.3-rc1
,1.2.3-rc2
, ... (1.2.3
のリリース候補版)1.2.3-SNAPSHOT
(1.2.3
の最新開発中バージョン)1.2.3
(1.2.3
安定版)1.2.3-sp1
,1.2.3-sp2
, ... (1.2.3
バグ修正版)
修飾子を活用している事例としては、org.hibernate:hibernate-coreがわかりやすいでしょう。 バージョンアップではALPHA, BETA, CRとFINAL修飾子を用いたリリースを、バグ修正ではパッチバージョンやSP修飾子を用いたリリースを行っています。
ピリオドとダッシュの違い
このページで紹介している命名方法を利用している限り、この違いを意識する必要はありません。 興味のある方は公式ドキュメントをご覧ください。
Last updated