読者です 読者をやめる 読者になる 読者になる

Web系開発メモ

Java, SpringBoot, JavaScript, CSS, HTML などの記事を書いています。

Maven:GPGプラグインのスキップ

Maven

Maven GPG Plugin を使うと、Mavenアーティファクト(jar などの生成物)を GnuPG でサインすることができます。このサインですが、必要になるのは Maven Central にアップロードするときなのかなと思います。

そこで、サイン(GPGプラグインの処理)をスキップする方法をまとめてみようと思います。

方法1. プロパティ gpg.skip を使う

普段は gpg.skiptrue にしておいて、サインするときに -Dgpg.skip=false を渡します。

<properties>
  <gpg.skip>true</gpg.skip>
</properties>

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-gpg-plugin</artifactId>
  <version>1.6</version>
  <executions>
    <execution>
      <id>sign-artifacts</id>
      <phase>verify</phase>
      <goals><goal>sign</goal></goals>
    </execution>
  </executions>
</plugin>

1.1. サインなしコマンド(普段)

mvn <goal>

1.2. サインありコマンド(デプロイ等)

mvn -Dgpg.skip=false deploy

方法2. profile タグを使う

Maven のタグを使って、普段は GPG プラグインを実行しないようにしておきます。サインするときだけ、コマンドで -DperformRelease=true を渡します。

<profiles>
  <profile>
    <id>release-sign-artifacts</id>
    <activation>
      <property>
        <name>performRelease</name>
        <value>true</value>
      </property>
    </activation>
    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>1.6</version>
          <executions>
            <execution>
              <id>sign-artifacts</id>
              <phase>verify</phase>
              <goals><goal>sign</goal></goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

2.1. サインなしコマンド(普段)

mvn <goal>

2.2. サインありコマンド(デプロイ等)

mvn -DperformRelease=true deploy

最後に

profile は分りやすい気もしますが、タグ(記述量)は多くなっちゃいますね。他にも良さそうな方法があれば、教えて頂けると嬉しいです。

参考文献