Ich verwende Travis-CI, um Continuous Integration Builds für einige Java-Open-Source-Projekte, an denen ich arbeite, bereitzustellen.Unterdrücken von GPG-Signaturen für Maven-basierte Continuous Integration-Builds (Travis CI)
Normalerweise funktioniert das reibungslos, aber ich habe ein Problem, wenn das POM GPG-Signierung angibt, z.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
Dies bewirkt, dass die Travis scheitern bauen - offenbar, weil es kein Passwort zur Verfügung hat, während mvn install
läuft. Ein Beispiel finden Sie in this build.
Was ist der beste Weg, Maven und/oder Travis zu konfigurieren, GPG-Signaturen für CI-Test-Builds zu überspringen, aber trotzdem GPG-Signaturen durchzuführen, wenn ich einen korrekten Release-Build mache?
Angenommen, Sie verwenden das Release-Plugin: Anstatt eine Aktivierung über das Flag zu verwenden, können Sie dieses Profil einfach der 'ReleaseProfiles'-Plugin-Einstellung hinzufügen. – ankon
Alternativ können Sie den Namen der Aktivierungseigenschaft '$ {env.TRAVIS}' mit dem Wert 'true' angeben. Dies liegt daran, dass Travis-CI-Container mit verschiedenen eingebauten Umgebungsvariablen (einschließlich zum Beispiel "TRAVIS = true" und "CI = true") hochgefahren werden und Maven sie über die Maven-Syntax für Umgebungsvariablen $ {env .} '. Dieser Ansatz hat den Vorteil, dass Sie nicht zu jedem Maven-Befehl eine Systemeigenschaft hinzufügen müssen, aber dennoch die Aktivierung des Profils vortäuschen und die automatische Aktivierung des Profils während der CI-Erstellung aktivieren können. –