Какой файл settings.xml используется подчиненным jenkins? - PullRequest
9 голосов
/ 18 октября 2011

У меня есть мастер Jenkins (работающий на небольшом компьютере с Linux) и подчиненный Jenkins (работающий на «правильной» машине с XP).

Я настроил обе эти функции для запуска в WindowsВедомый XP.

К сожалению, каждый раз, когда на этом ведомом устройстве выполняется сборка, сборка завершается неудачей из-за следующей ошибки:

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

Я знаю, что эта ошибка связана с неверным определениемрепозиторий, содержащий эти артефакты, поскольку используемый репозиторий определяется в файле settings.xml.Итак, мой вопрос довольно прост: как определить, какой файл settings.xml используется подчиненным Jenkins?

Ответы [ 3 ]

21 голосов
/ 18 октября 2011

Maven использует глобальные настройки и файл настроек пользователя. Если файл пользовательских настроек существует, он переопределяет глобальный.

Глобальный находится в %M2_HOME%\conf\, а пользовательский - в %HOME%\.m2\. Здесь %HOME% означает домашний каталог любого пользователя, работающего с подчиненным Jenkins.

Таким образом, самое простое решение, если оно возможно в вашей ситуации, - просто скопировать правильный файл settings.xml в каталог %HOME%\.m2\ на подчиненном компьютере Jenkins.

В качестве альтернативы, вы можете указать пользовательский файл settings.xml в командной строке mvn, используя опцию --settings, чтобы вы могли поместить файл в известном месте (например, C:\), а затем попросить Дженкинса передать настройки Maven, что-то вроде --settings C:\settings.xml.

Кроме того, часто полезно создать нового пользователя Windows для запуска подчиненного устройства Jenkins, чтобы вы могли легко определить, где он будет искать файлы конфигурации.

8 голосов
/ 18 октября 2011

Как всегда, решение оказалось проще, чем я думал.

Подчиненный Jenkins настроен для запуска системным пользователем.Как следствие, для того, чтобы он использовал мой файл settings.xml, все, что мне нужно было сделать, - это сменить ассоциированного пользователя, и проблема исчезла!

1 голос
/ 01 мая 2012

Для меня то, что заставило это работать, было использование переменной -Duser.home.

Я заставил это работать! Однако вместо введя его в MAVEN_OPTS, на экранах настройки jenkins, я ввел его как переменную уровня JVM для своего веб-сервера.

Для меня я использую Glassfish на WinTell вместо tomcat. Glassfish начинается как служба windows. В основном введено:

Имя переменной JVM: user.home Значение JVM: /data/maven-2.2/jenkins

Затем в этом каталоге /data/maven-2.2/jenkins убедитесь, что у вас есть копия действительный файл settings.xml с информацией о прокси, введенной правильно. Это позволяет мне выделить отдельный файл settings.xml для моих сборок служб jenkins v. вход в систему в интерактивном режиме.

Эрик

...