Question

J'ai un maître Jenkins (en cours d'exécution sur une petite boîte Linux) et un esclave Jenkins (en cours d'exécution sur une machine XP "correcte").

J'ai configuré à la fois pour tous les focs à exécuter sur l'esclave Windows XP.

Malheureusement, chaque fois qu'une construction est exécuté sur cet esclave, la génération échoue en raison de l'erreur suivante:

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

Je sais que cette erreur est due à la mauvaise définition du référentiel contenant ces artefacts, parce que référentiel utilisé est défini dans le fichier settings.xml. Donc, ma question est assez simple: comment puis-je définir quel fichier settings.xml est utilisé par un esclave Jenkins

Était-ce utile?

La solution 2

Comme toujours, la solution était plus simple que ce que je pensais qu'il pouvait.

Jenkins esclave est configuré pour être exécuté par l'utilisateur système. En conséquence, pour elle d'utiliser mon settings.xml, tout ce que je devais faire était de changer son utilisateur associé et problème a disparu!

Autres conseils

Maven utilise un des paramètres globaux et un fichier de paramètres utilisateur. Si le fichier de paramètres utilisateur existe, il remplace celui mondial.

L'un mondial se trouve dans %M2_HOME%\conf\, tandis que celui de l'utilisateur est en %HOME%\.m2\. signifie ici %HOME% le répertoire de ce que l'utilisateur est en cours d'exécution de l'esclave Jenkins.

Ainsi, la solution la plus simple, en supposant qu'il est possible dans votre situation, est de simplement copier le fichier settings.xml correct dans le répertoire %HOME%\.m2\ sur la machine esclave Jenkins.

Vous pouvez spécifier un fichier settings.xml personnalisé sur la ligne de commande mvn en utilisant l'option --settings, de sorte que vous pouvez placer le fichier dans un endroit connu (par exemple C:\), puis dire Jenkins passer le paramètre à Maven, quelque chose comme --settings C:\settings.xml.

En aparté, il est souvent utile de créer un nouvel utilisateur Windows pour exécuter l'esclave Jenkins, de sorte que vous pouvez facilement dire où il recherchera des fichiers de configuration.

Pour moi, ce qui a ce au travail utilisait la variable -Duser.home.

Je l'ai fait obtenir ce travail! Cependant, au lieu de entrant dans les MAVEN_OPTS, dans les écrans du configure, je suis entré comme une variable de niveau JVM à mon serveur web.

Pour moi, j'utilise GlassFish sur WinTell, au lieu de tomcat. commence Glassfish comme service de fenêtres. Fondamentalement entrée:

nom variable JVM: user.home Valeur JVM: /data/maven-2.2/jenkins

Alors, dans ce répertoire /data/maven-2.2/jenkins assurez-vous d'avoir une copie de un settings.xml valide avec les informations proxy est entré correctement. Cela me permet d'isoler un settings.xml séparé pour mes services de jenkins construit v. l'exploitation forestière sur de manière interactive.

Eric

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top