Web系開発メモ

Java, C#, HTML, CSS, JavaScript のことなどを書いてます。

Maven SNAPSHOTの概要とリリース方法(スナップショット)

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/

参考文献

What is a SNAPSHOT version? - Maven