Mavenリリースプラグインを使用するように構成しようとしているMavenプロジェクトがあります。リリースプロセスの一部は、Maven GPGプラグインを使用してアーティファクトに署名することです。これには、特にGPG署名キーパスフレーズが成功する必要があります。これらのビルドは非対話型環境で実行可能である必要があるため、(CI-Server)これらのパラメーターは引数としてmavenに次の形式で渡されます。
-Dgpg.passphrase=XXX
スナップショットビルドの場合、すべてが正常に機能します。Maven GPGプラグインは渡されたパスフレーズを認識し、アーティファクトは期待どおりにビルド、署名、デプロイされますが、リリースプラグインを使用しようとすると、gpg署名キーのパスワードの入力を求められます。渡されたパラメータを受け取らないmavenの別の呼び出しをフォークするリリースプラグインに起因する同様の問題に関するいくつかの議論を読みました。最も一般的な修正は、次のような「arguments」パラメータを使用することのようです。
-Darguments="-Dgpg.passphrase=XXX"
おそらくこれはフォークされたインスタンスに渡されますが、残念ながら私にとってはプロンプトが削除されていません。
アーティファクトに署名することは、リリースアーティファクトをパブリックMavenリポジトリにデプロイするための珍しい前提条件ではなく、おそらくそれらのアーティファクトを生成するほとんどのエンティティが何らかの形式のCIを使用しているため、この問題に遭遇したのは私だけだとは想像できません。誰かが回避策を見つけましたか?
受け入れられた回答に関する注記:
受け入れられたソリューションは、Maven 3.0では機能しません。3.0.3および3.0.3は、OSXMountainLionのJavaでデフォルトでインストールされるものです。3.0.4にアップグレードする必要があります。