Domanda

Ho un maestro Jenkins (in esecuzione su una piccola scatola di Linux) e uno schiavo Jenkins (in esecuzione su una macchina "corretto" XP).

Ho configurato sia per tutti i bracci per essere eseguito sullo slave Windows XP.

Purtroppo, ogni volta che un build è eseguito su quello schiavo, la build non riesce a causa del seguente errore:

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

So che questo errore è dovuto alla cattiva definizione di repository contenente quei manufatti, perché repository utilizzato è definito in settings.xml. Quindi, la mia domanda è molto semplice: come posso definire quale file settings.xml viene utilizzato da uno schiavo Jenkins

È stato utile?

Soluzione 2

Come sempre, la soluzione era più semplice di quanto pensavo che poteva.

Slave

Jenkins è configurato per essere eseguito dall'utente sistema. Di conseguenza, per poter usare la mia settings.xml, tutto quello che dovevo fare era cambiare il suo utente associato e problema è scomparso!

Altri suggerimenti

Maven utilizza un impostazioni globali e un file di impostazioni utente. Se il file esiste impostazioni utente, sostituisce quella globale.

L'unica globale si trova in %M2_HOME%\conf\, mentre l'utente è nella %HOME%\.m2\. mezzi Qui %HOME% la home directory di qualsiasi utente esegue lo schiavo Jenkins.

Quindi, la soluzione più semplice, ammesso che sia possibile nella vostra situazione, è quello basta copiare il file settings.xml corretto alla directory %HOME%\.m2\ sulla macchina slave Jenkins.

In alternativa, è possibile specificare un file settings.xml personalizzato sulla riga di comando mvn utilizzando l'opzione --settings, così si potrebbe mettere il file in una posizione nota (ad esempio C:\) e poi dire Jenkins per passare l'impostazione di Maven, qualcosa come --settings C:\settings.xml.

Per inciso, è spesso utile per creare un nuovo utente di Windows per eseguire lo schiavo Jenkins, in modo che si può facilmente dire dove si cercherà i file di configurazione.

Per me quello che ha ottenuto questo al lavoro stava usando la variabile -Duser.home.

L'ho fatto arrivare a questo lavoro! Tuttavia, invece di entrare nei MAVEN_OPTS, nelle schermate di configurazione del Jenkins, sono entrato come un livello variabile JVM al mio server web.

Per quanto mi riguarda sto usando GlassFish su WinTell, invece di Tomcat. inizia come GlassFish servizio di Windows. In sostanza immesso:

JVM nome della variabile: user.home valore di JVM: /data/maven-2.2/jenkins

Poi, in questa directory /data/maven-2.2/jenkins assicuratevi di avere una copia di un settings.xml valida con le informazioni di proxy immesso correttamente. In questo modo mi permette di isolare un settings.xml separata per i miei servizi Jenkins costruisce v. la registrazione su in modo interattivo.

Eric

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top