Ich habe einen Jenkins-Master (der auf einer kleinen Linux-Box läuft) und einen Jenkins-Slave (der auf einer "richtigen" XP-Maschine läuft).
Ich habe beide für alle Jibs konfiguriert, die auf dem Windows XP-Slave laufen sollen.
Leider wird jedes Mal, wenn ein Build auf diesem Slave ausgeführt wird, der Build aufgrund des folgenden Fehlers fehlgeschlagen:
%Vor%Ich weiß, dass dieser Fehler auf die schlechte Definition des Repositorys mit diesen Artefakten zurückzuführen ist, da das verwendete Repository in settings.xml definiert ist. Also, meine Frage ist ziemlich einfach: Wie kann ich definieren, welche Datei settings.xml von einem Jenkins-Slave verwendet wird?
Maven verwendet eine globale Einstellungen und eine Benutzereinstellungen Datei. Wenn die Benutzereinstellungsdatei vorhanden ist, überschreibt sie die globale Einstellungsdatei.
Der globale Eintrag befindet sich in %M2_HOME%\conf\
, während sich der Benutzer in %HOME%\.m2\
befindet. Hier bedeutet %HOME%
das Home-Verzeichnis des Benutzers, der den Jenkins-Slave ausführt.
Die einfachste Lösung, vorausgesetzt, dass es in Ihrer Situation möglich ist, besteht darin, einfach die richtige settings.xml-Datei in das Verzeichnis %HOME%\.m2\
auf dem Jenkins-Slave-Rechner zu kopieren.
Alternativ können Sie eine benutzerdefinierte settings.xml-Datei in der mvn-Befehlszeile mit der Option --settings
angeben, sodass Sie die Datei an einem bekannten Speicherort ablegen können (z. B. C:\
) und dann Jenkins die Einstellung übergeben zu Maven, etwas wie --settings C:\settings.xml
.
Nebenbei ist es oft hilfreich, einen neuen Windows-Benutzer zum Ausführen des Jenkins-Slaves zu erstellen, damit Sie leicht feststellen können, wo er nach Konfigurationsdateien suchen wird.
Für mich war das die Verwendung der Variablen -Duser.home.
Ich habe das zur Arbeit gebracht! Jedoch statt Wenn ich es in den MAVEN_OPTS eintrage, habe ich es in den Jenkins-Konfigurationsfenstern als JVM-Level-Variable in meinen Webserver eingegeben.
Für mich benutze ich Glassfish auf WinTell statt Tomcat. Glassfish beginnt als Windows-Dienst. Grundsätzlich eingegeben:
JVM-Variablenname: user.home JVM-Wert: /data/maven-2.2/jenkins
Stellen Sie in diesem Verzeichnis /data/maven-2.2/jenkins sicher, dass Sie eine Kopie von haben eine gültige settings.xml mit den korrekt eingegebenen Proxy-Informationen. Das macht es mir möglich isolieren eine separate settings.xml für meine jenkins services erstellt v. anmelden interaktiv.
Eric