jenkins slave使用哪个settings.xml?

Rid*_*del 9 hudson slave maven jenkins

我有一个Jenkins大师(在一个小的Linux机器上运行)和一个Jenkins奴隶(在"正确的"XP机器上运行).

我已经为在Windows XP从站上运行的所有jib配置了两个.

不幸的是,每次在该从属服务器上运行构建时,构建都会因以下错误而失败:

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
Run Code Online (Sandbox Code Playgroud)

我知道这个错误是由于包含这些工件的存储库的错误定义,因为used.xml是在settings.xml中定义的.所以,我的问题很简单:如何定义Jenkins slave使用哪个settings.xml文件?

Chr*_*s B 21

Maven使用全局设置和用户设置文件.如果用户设置文件存在,则它将覆盖全局文件.

找到全局的%M2_HOME%\conf\,而用户是在%HOME%\.m2\.这%HOME%意味着运行Jenkins从站的任何用户的主目录.

因此,假设在您的情况下可行的最简单的解决方案是将正确的settings.xml文件复制到%HOME%\.m2\Jenkins从机上的目录中.

或者,您可以使用该--settings选项在mvn命令行上指定自定义settings.xml文件,这样您就可以将文件放在已知位置(例如C:\),然后告诉Jenkins将设置传递给Maven,例如--settings C:\settings.xml.

另外,创建一个新的Windows用户来运行Jenkins从站通常很有用,这样您就可以轻松地告诉它将搜索配置文件的位置.


Rid*_*del 8

像往常一样,解决方案比我想象的要简单.

Jenkins slave配置为由系统用户运行.因此,要使用我的settings.xml,我所要做的就是更改其关联用户,问题就消失了!