2011-10-18 1 views
7

저는 Jenkins 마스터 (작은 리눅스 박스에서 실행 중)와 Jenkins 슬레이브 ("올바른"XP 시스템에서 실행 중)를 가지고 있습니다.젠킨스 슬레이브가 사용하는 settings.xml은 무엇입니까?

모든 jib가 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

항상 그렇듯이 솔루션은 내가 생각한 것보다 간단했습니다.

젠킨스 슬레이브는 시스템 사용자에 의해 실행되도록 구성됩니다. 그 결과, 내 settings.xml을 사용하려면 관련 사용자를 변경해야하고 문제가 사라졌습니다.

20

Maven은 전역 설정과 사용자 설정 파일을 사용합니다. 사용자 설정 파일이 있으면 전역 설정 파일을 덮어 씁니다.

사용자가 %HOME%\.m2\ 인 동안 전체 하나는 %M2_HOME%\conf\에서 발견됩니다. 여기 %HOME%은 젠킨스 노예를 실행하는 사용자의 홈 디렉토리를 의미합니다.

가장 쉬운 해결책은 상황에 따라 가능하면 젠킨스 슬레이브 컴퓨터의 %HOME%\.m2\ 디렉토리에 정확한 settings.xml 파일을 복사하는 것입니다.

는 다른 방법으로는, 메이븐에 설정을 전달하는 젠킨스에게 다음 알려진 위치에 파일을 넣을 수 있도록 --settings 옵션을 사용하여 MVN 명령 행에서 사용자 정의 Settings.XML이 파일을 지정합니다 (예 : C:\) 할 수 있습니다 --settings C:\settings.xml과 같은 것입니다.

젠킨스 슬레이브를 실행하기 위해 새로운 Windows 사용자를 생성하는 것이 유용하기 때문에 구성 파일을 검색 할 위치를 쉽게 알 수 있습니다.

+1

감사합니다. 로컬 사용자 및 설정으로 실행되도록 슬레이브 서비스를 설정했습니다.C : /users/myuser/.m2/에있는 xml이 마침내 선택되었습니다. 그 외 : 기본 시스템 사용자 및 다른 설정이 없으면 maven 설치 폴더 아래의 settings.xml이 사용됩니다. – Rob

1

나를 위해 무엇이 작동하도록 --Duser.home 변수를 사용했다.

나는 이것을 작동 시켰습니다! 그러나 MAKEN_OPTS에 을 입력하는 대신 jenkins 구성 화면에서 웹 서버에 대한 JVM 수준 변수로 입력했습니다.

나를 위해 나는 바람둥이 대신 WinTell에서 glassfish를 사용하고 있습니다. Glassfish는 Windows 서비스로 시작합니다. 기본적으로 입력 :

JVM 변수 이름 : user.home의 JVM 값 :이 디렉토리에 /data/maven-2.2/jenkins 당신의 복사본이 있는지 확인하십시오, 그리고

을 /data/maven-2.2/jenkins 프록시 정보가 올바르게 입력 된 유효한 settings.xml 이렇게하면 에 내 jenkins 서비스 빌드 v. logging에 대한 별도 settings.xml을 대화식으로 분리 할 수 ​​있습니다.

Eric