2013-08-14 2 views
0

Jenkins, Maven 및 Tycho와 약간 이상한 문제가 있으며 누가 범인인지 알기가 어렵습니다.Jimkins에서 Tycho 빌드가 SCM 트리거에만 작동하지 않습니다.

모든 SCM 트리거 빌드가 실패하지만 모든 수동 트리거 빌드가 성공합니다.

젠킨스 버전 : Jenkins ver. 1.527
메이븐 버전 : 젠킨스 모듈 빌드 간단한 받는다는로 구성되어

<modules> 
    <module>../main.plugin.test</module> 
    <module>../main.plugin.internationalization.at</module> 
    <module>../crud.plugin</module> 
    <module>../rest.plugin</module> 
    <module>../main.plugin</module> 
    <module>../main.feature</module> 
    <module>../product</module> 
    <module>../target-definition</module> 
    <module>../rest.plugin.test</module> 
</modules> 

: 3.05

나는 모듈화 티코 빌드를 가지고있다.

그냥 실행 :

-X clean deploy 

SCM-빌드는 일부 모듈이 구축되지 않은 트리거됩니다.

enter image description here

내가 그것을 구축

수동으로 모든 것이 괜찮 :

enter image description here

이 동작은 일치한다. 나는 전에 이미 모든 소스

  • 실행 -X deploy (깨끗한 없음)의
  • 깨끗한 체크 아웃을 구축하기 위해 다른 메이븐 버전은 전체 작업 공간을 삭제 (3.05/3.04)
  • 로 전환
    • 시도

    수동 호출의 양은 성공합니다. 그리고 어떤 양의 scm 트리거도 실패합니다.

    메이븐 모두 로그 (일)까지 정확히 같은 모양 :

    [INFO] Reactor Build Order: 
    [INFO] 
    [INFO] client-master 
    [INFO] crud-plugin 
    [INFO] main-plugin 
    [INFO] ------------.main.plugin.test 
    [INFO] ------------.main.plugin.internationalization.at 
    [INFO] rest-plugin 
    [INFO] main-plugin 
    [INFO] ------------.product 
    [INFO] target-definition 
    [INFO] ------------.rest.plugin.test 
    

    과 (실패) :

    [INFO] ------------------------------------------------------------------------ 
    [INFO] Reactor Build Order: 
    [INFO] 
    [INFO] main-plugin 
    [INFO] ------------.plugin.test 
    [INFO] ------------.main.plugin.internationalization.at 
    [INFO] rest-plugin 
    [INFO] main-plugin 
    [INFO] ------------.product 
    [INFO] ------------.rest.plugin.test 
    

    마지막 오류 메시지가 그러므로 :

    Caused by: java.lang.IllegalStateException: ------------..client:------------..crud.plugin:eclipse-plugin:1.0.0-SNAPSHOT does not provide an artifact with classifier 'null' 
    

    고객 특정 모듈 이름은 ------------로 바뀝니다. 이 질문에.

  • +0

    사용중인 빌드 단계의 정확한 이름은 무엇입니까? 어떤 Jenkins 플러그인이이 빌드 단계에 기여합니까? – oberlies

    답변

    2

    나는 Jenkins의 Tycho 빌드와 관련된 막연한 문제점을 반복적으로 들었습니다. 이러한 문제의 원인은 이러한 빌드를 트리거하는 일부 Jenkins 플러그인이 Maven 라이프 사이클에 후크를 일으키고 이것이 Maven 내부에서 Tycho가하는 일과 충돌한다는 것입니다.

    설명하는 문제에 대해 사용중인 Jenkins 플러그인이 모듈 빌드 순서를 변경하고있는 것으로 보입니다. 이것은 일반적인 Maven 빌드 (POM에서 모든 의존성이 선언 된)에서는 괜찮지 만 Maven/Tycho 빌드에서는 실패 할 수 있습니다. Maven/Tycho 빌드에서는 종속성이 빌드 중에 Tycho에 의해 계산됩니다.

    이 문제를 방지하려면 일반적인 명령 줄 빌드에 가깝게 Maven 빌드를 트리거해야합니다. 최상위 Maven 대상 호출Maven 통합 플러그인 빌드 단계가 문제없이 작동 함을 발견했습니다.

    +1

    올바른 방향으로 나를 안내해 주셔서 감사합니다. 범인은 maven 용 젠킨스 설정에서 "증분 빌드"였습니다 (적어도 그랬 으면 좋겠다 :)). 빌드가 제대로 작동하는 것 같습니다. – oers

    +0

    우리 인스턴스에서 "증분 빌드"가 표시되지 않습니다. 그래서 당신은 내가 가지고있는 것보다 다른 젠킨스 메이븐 플러그인을 설치 한 것 같습니다 ... – oberlies

    +1

    젠킨스와 메이븐 통합 플러그인 (모든 최신 버전) 1.527 버전과 내 프로젝트는 메이븐 2/3 프로젝트입니다 (자유형 프로젝트가 있다고 생각합니다.)). 우연히이 기능을 활성화 한 다음 오류가 발생했을 때이를 잊어 버렸습니다. – oers

    관련 문제