Sonntag, März 15, 2015

Jenkins, Maven und das Deploy-Target

Vor kurzem habe ich einen meiner älteren Rechner reaktiviert und dort das aktuelle 64-Bit Ubuntu aktualisiert. In dem Zuge wurde das alte 32-Bit Vista entfernt und es standen zum ersten mal nach vielen Jahren die vollen 4 GB Hauptspeicher zur Verfügung. Aber das nur am Rande. Im Anschluss habe ich Jenkins installiert und meine Projekte konfiguriert. Jenkins soll alle meine Build-Artefakte bauen, das Ergebnis in einem Maven Remote-Repository zur Verfügung stellen und im Anschluss die Projekt Homepage per site-deploy aktualisieren. Der Zugriff auf den Remote-Server schlug aber regelmäßig mit der folgenden Fehlermeldung fehl:
The host was not known and was not accepted by the configuration
bzw.
Caused by: com.jcraft.jsch.JSchException: reject HostKey
Was habe ich alles versucht: Ich habe die SSH Schlüssel in Jenkins hinterlegt, ich habe das SSH Passwort in Jenkins hinterlegt, ich habe mich in die Maven-Konfiguration eingelesen (z.B. http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploy-ssh-external.html). Das hat aber zunächst alles nicht geholfen. Hier die Lösung: Man loggt sich als Jenkins User auf dem Build-Rechner ein und baut das Projekt per Kommandozeile:
sudo su jenkins
cd ~jenkins/jobs/[PROJEKT_NAME]/workspace
~jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven3/bin/mvn clean deploy
Jetzt den neuen SSH-Server akzeptieren, und wenn die SSH-Konfiguration korrekt ist, kann der Build über die Web-Oberfläche von Jenkins gestartet werden. Fazit: Bei SSH-Build Fehlern der Jenkins-GUI nicht vertrauen und zunächst das Problem per Kommandozeile lösen.

Keine Kommentare:

Kommentar veröffentlichen

AssertJ und java.util.List

AssertJ hat eine praktische Möglichkeit, Listen in JUnit Tests abzuprüfen. Insbesondere, wenn in der Liste komplexe Objekte abgelegt sind, s...