Ich habe gesehen: Avoid gpg signing prompt when using Maven release plugin aber es ist für eine sehr alte Version von Maven, und ich verwende 3.2.2, so dass die gleiche Lösung nicht zutrifft.Wie bekomme ich das maven-gpg-plugin zur Verwendung eines Passwortes aus der Umgebungsvariable oder der Kommandozeilen-Eigenschaft?
Grundsätzlich egal, welche Kombination von Eigenschaften in der Befehlszeile, Eigenschaften in der pom.xml oder Umgebungsvariablen Ich kann nicht das Maven Gpg-Plugin zu vermeiden, den Agent-Dialog auftauchen.
Wir haben uns aus Sicherheitsgründen dazu entschlossen, die Passphrase nicht in der settings.xml im Klartext anzugeben, da dies eine schreckliche Idee ist. Und mit dem verschlüsselten Maven-Zeug bewegt man einfach den Hauptschlüssel in eine andere einfache Textdatei.
Software-Versionen:
$ gpg --version
gpg (GnuPG) 2.1.2
libgcrypt 1.6.2
$ mvn --version
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T08:51:42-05:00)
I
mvn -Dgpg.passphrase='lolpassphrase'
Mit den Eigenschaften in der pom.xml versucht haben, sie aus der Umwelt zu erhalten:
<properties>
<gpg.keyname>E7C89BBB</gpg.keyname>
<gpg.passphrase>${env.GPG_PASSPHRASE}</gpg.passphrase>
</properties>
und dann:
GPG_PASSPHRASE='lolpassphrase' mvn install
EDIT: Anscheinend mein GPG-Agent wurde in der Quere und der GPG-Agent wird noch zu uns liegt ich veranlassen, wenn ich das aktuelle Passwort in den pom.xml Eigenschaften :(
<properties>
<gpg.keyname>E7C89BBB</gpg.keyname>
<gpg.passphrase><![CDATA[lolcomplicatedpassphrase]]></gpg.passphrase>
</properties>
Es gesetzt Es muss ein Weg sein, dies zu tun, ohne das Passwort irgendwo im Klartext zu behalten, aber ich kann die richtigen googles nicht benutzen, um diese Antwort zu finden, in der Hoffnung, dass ihr mir helfen könnt.