2011-10-18 57 views
7

我有一个Jenkins master(运行在一个小的Linux机器上)和一个Jenkins slave(运行在“正确的”XP机器上)。jenkins slave使用哪个settings.xml?

我已经为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 [email protected]: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中定义。所以,我的问题很简单:我怎样才能定义Jenkins从站使用哪个settings.xml文件?

回答

6

和往常一样,解决方案比我想的要简单。

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

20

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

全球之一位于%M2_HOME%\conf\,而用户一位于%HOME%\.m2\。这里%HOME%表示无论用户运行Jenkins从站的主目录。

所以最简单的解决方案,假设在您的情况下可能,只需将正确的settings.xml文件复制到Jenkins从属机器上的%HOME%\.m2\目录。

或者,您可以使用--settings选项mvn命令行上指定一个自定义的settings.xml文件,所以你可以把文件中的一个已知位置(如C:\),然后告诉詹金斯将设置传递到Maven的,像--settings C:\settings.xml。另外,创建一个新的Windows用户来运行Jenkins从服务器通常很有用,这样你就可以很容易地知道它将在哪里搜索配置文件。

+1

谢谢,我设置从服务作为本地用户和设置运行。C:/users/myuser/.m2/下的xml终于被拾起。此外:使用默认系统用户并且没有其他设置,使用maven安装文件夹下的settings.xml。 – Rob

1

对我来说,使用-Duser.home变量得到了这个工作。

我确实得到了这个工作!但是,在配置jenkins屏幕中,我将它作为JVM级别变量输入到我的Web服务器,而不是 输入到MAVEN_OPTS中。

对我来说,我在WinTell上使用glassfish,而不是tomcat。 Glassfish以一个 windows服务启动。基本上进入:

JVM变量名:的user.home JVM值:/data/maven-2.2/jenkins

然后,在这个目录中/data/maven-2.2/jenkins请确保您有副本 正确输入代理信息的有效settings.xml。这样做允许我 为我的jenkins服务构建隔离一个单独的settings.xml,以交互方式登录 。

埃里克

相关问题