0

Apache Maven GPG Plugin maven-gpg-pluginを使用して、OSSRHを介してMaven Centralに公開するために必要なシグネチャを生成しています。 pom.xmlの私のプラグインの定義は下記のとおりです。私のOSSRHの資格はMavenのconf/settings.xmlにあり、すべて正常です。しかし、別の開発者がmvn installにしようとすると、GPGがインストールされていないため、彼は失敗します。私はGPGをインストールする必要があるのを避けるために、デベロッパーがデプロイメントをやっていることを除いて、ビルド時や他の手段でmaven-gpg-pluginエラーを無視してプラグを2つpom.xmlにする必要はありませんそれ以外は別のものである。Apache Maven GPGプラグインのエラーを無視する方法

<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> 
     <configuration> 
      <keyname>${gpg.keyname}</keyname> 
      <passphraseServerId>${gpg.passphrase}</passphraseServerId> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

答えて

1

あなたのポンポンにプロファイルを追加し、その中のmaven-GPG-プラグインの実行を定義することができます。

<project> 
    ... 
    <profiles> 
    <profile> 
     <id>sign</id> 
     <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> 
       <configuration> 
        <keyname>${gpg.keyname}</keyname> 
        <passphraseServerId>${gpg.passphrase}</passphraseServerId> 
       </configuration> 
       </execution> 
      </executions> 
      </plugin> 
     </plugins> 
     </build> 
    </profile> 
    </profiles> 
</project> 

プロファイル場合は、このプラグインは、その後のみビルドプロセスに追加されますアクティブです。あなたはこのようにMavenを呼び出すことによって、プロファイルをアクティブにすることができます:

mvn install -P sign 

手動でプロファイルを活性化することに加えて、プロファイルはまた、このような環境変数または特定のファイルの存在などの条件に基づいて自動的に起動することができます。この詳細はMaven introduction on profilesにあります。

あなたのケースでは、1つの選択肢は、GPG固有のファイルが見つかった場合は、プロファイルを有効にするには、次のようになります。

<profile> 
    <id>sign</id> 
    <activation> 
    <file> 
     <exists>${user.home}/.gnupg/secring.gpg</exists> 
    </file> 
    </activation> 
    ... 
</profile> 

私は上記のコードをテストしていないと、あなたがチェックする必要があり、実際のファイルは異なる場合があります使用しているGPGのバージョンとシステム環境によって異なります。

関連する問題