Maven のバージョン番号に付けられる SNAPSHOT
の概要と、リリース方法を書いていきます。
1. SNAPSHOT の概要
SNAPSHOT
とは、
- 開発中のコードであること
- 安定版ではないこと
- 変更の可能性があること
を示す値です。
2. SNAPSHOT の成果物
スナップショットの成果物には、サフィックス -SNAPSHOT
を付けます。
sample-1.0.0-SNAPSHOT.jar
このバージョンは、リリース後も変更されることがあります。
-SNAPSHOT
が付いていないバージョンは、リリースしたら変更しないのが一般的です。
sample-1.0.0.jar
変更する場合は、バージョンを上げます。
3. SNAPSHOT のライフサイクル
1.0.0-SNAPSHOT
は、安定すると 1.0.0
に変更してリリースされます。
次のリリースが 1.0.1
だとすると、その開発バージョンは 1.0.1-SNAPSHOT
になります。
4. SNAPSHOT の使用について
スナップショットの使用やリリースは強制ではないです。
アルファ版(例:1.0.0-alpha
)や、ベータ版(例:1.0.0-beta
)などを使うプロジェクトもあります。
5. リリース方法
Maven の機能を使って、SNAPSHOT
をリリースする例を書いていきます。
5.1. バージョンの定義
pom.xml
の <version>
で、-SNAPSHOT
付きのバージョンを定義します。
<project> ... <groupId>org.sample</groupId> <artifactId>product</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>jar</packaging> ... </project>
5.2. リポジトリの定義
pom.xml
に、デプロイ先のリポジトリを定義します。
<project> ... <distributionManagement> <snapshotRepository> <id>ossrh</id> <url>https://oss.sonatype.org/content/repositories/snapshots</url> </snapshotRepository> <repository> <id>ossrh</id> <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url> </repository> </distributionManagement> ... </project>
※ Maven Central へリリースする例です。
5.3. デプロイ
以下のコマンドを実行すると、Maven が自動的にスナップショット用のリポジトリにリリースしてくれます。
mvn deploy
スナップショットは、以下の内容でリリースされます。
名前:product-1.0.0-SNAPSHOT.jar デプロイ先:https://oss.sonatype.org/content/repositories/snapshots
バージョンに -SNAPSHOT
を付けないと、以下の内容でリリースされます。
名前:product-1.0.0.jar デプロイ先:https://oss.sonatype.org/service/local/staging/deploy/maven2/