Frage

Ich habe einen Jenkins -Meister (auf einer kleinen Linux -Box) und einen Jenkins -Slave (auf einer "richtigen" XP -Maschine).

Ich habe beide für alle Jibs auf dem Windows XP -Slave konfiguriert.

Leider schlägt der Build jedes Mal, wenn ein Build auf diesem Sklaven ausgeführt wird, aufgrund des folgenden Fehlers fehl:

ERROR: Ignore Problem expanding maven opts macros org.jenkinsci.plugins.tokenmacro.TokenMacro
Found mavenVersion 3.0.3 from file jar:file:/E:/java-ext/apache-maven-3.0.3/lib/maven-core-3.0.3.jar!/META-INF/maven/org.apache.maven/maven-core/pom.properties
Parsing POMs
ERROR: Echec à la lecture des POMs
hudson.util.IOException2: remote file operation failed: C:\hudson\workspace\Autocat at hudson.remoting.Channel@ee5bc4:ndx-PC-winXP
    at hudson.FilePath.act(FilePath.java:752)
    at hudson.FilePath.act(FilePath.java:738)
    at hudson.maven.MavenModuleSetBuild$RunnerImpl.parsePoms(MavenModuleSetBuild.java:817)
    at hudson.maven.MavenModuleSetBuild$RunnerImpl.doRun(MavenModuleSetBuild.java:617)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:429)
    at hudson.model.Run.run(Run.java:1374)
    at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:467)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:145)
Caused by: hudson.remoting.ProxyException: hudson.maven.MavenModuleSetBuild$MavenExecutionException: org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM: Failure to find fr.perigee.java:java-parent:pom:0.0.6 in http://tinkerpop.com/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of tinkerpop has elapsed or updates are forced and 'parent.relativePath' points at wrong local POM @ line 3, column 10

Ich weiß, dass dieser Fehler auf die schlechte Definition von Repository, die diese Artefakte enthält, zurückzuführen ist, da das verwendete Repository in setts.xml definiert ist. Meine Frage ist also recht einfach: Wie kann ich definieren, welche Einstellungen.xml -Datei von einem Jenkins -Sklaven verwendet wird?

War es hilfreich?

Lösung 2

Wie immer war die Lösung einfacher als ich dachte.

Jenkins Slave ist so konfiguriert, dass sie vom Systembenutzer ausgeführt werden. Infolgedessen musste ich nur meinen zugehörigen Benutzer ändern, und das Problem verschwand nur!

Andere Tipps

Maven verwendet eine globale Einstellungen und eine Benutzereinstellungsdatei. Wenn die Datei Einstellungen der Benutzereinstellungen vorhanden ist, überschreibt sie die globale.

Der globale ist in gefunden in %M2_HOME%\conf\, während der Benutzer in ist %HOME%\.m2\. Hier %HOME% bedeutet das Home -Verzeichnis, von dem der Benutzer den Jenkins -Sklaven ausführt.

Die einfachste Lösung, vorausgesetzt, sie ist in Ihrer Situation möglich, besteht darin, die richtigen Einstellungen zu kopieren.xml -Datei in die %HOME%\.m2\ Verzeichnis auf der Jenkins -Sklavenmaschine.

Alternativ können Sie eine benutzerdefinierte Einstellungen.xml -Datei in der Befehlszeile der MVN angeben --settings Option, damit Sie die Datei an einem bekannten Ort einfügen können (z. B. C:\) und dann Jenkins sagen, sie sollen die Einstellung an Maven weitergeben, so etwas wie --settings C:\settings.xml.

Abgesehen davon ist es oft nützlich, einen neuen Windows -Benutzer zu erstellen, um den Jenkins -Slave auszuführen, damit Sie leicht feststellen können, wo er nach Konfigurationsdateien sucht.

Für mich war das zu funktionieren, die Variable -Duser.Home -Variable zu verwenden.

Ich habe das zum Laufen gebracht! Anstatt es in die Maven_Opts einzugeben, habe ich sie in den Konfigurieren von Jenkins -Bildschirmen als Variable der JVM -Ebene zu meinem Webserver eingegeben.

Für mich benutze ich Glassfish auf Wintell anstelle von Tomcat. Glassfish beginnt als Windows -Service. Grundsätzlich eingegeben:

JVM-Variablenname: user.home JVM Value: /data/maven-2.2/jenkins

Dann stellen Sie in diesem Verzeichnis /data/maven-2.2/jenkins sicher, dass Sie eine Kopie einer gültigen Einstellungen haben. Xml mit den korrekt eingegebenen Proxy-Info. Auf diese Weise kann ich eine separate Einstellungen isolieren.xml für meine Jenkins -Dienste bauen v. Anmeldet sich interaktiv an.

Eric

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top