2011-09-20 4 views
2

Jenkins는 작업이 Maven 2/3 프로젝트이거나 자유 형식 프로젝트 인 경우 환경 변수를 다르게 관리하는 것으로 보입니다.Jenkins는 자유 형식 프로젝트에서 환경 변수로 Maven 리소스를 필터링하지 않습니다.

테스트를 보여 드리겠습니다.

그것은이 myfile.xmlsrc/main/resources에 포함 (기본 메이븐 아키 타입으로, 예를 들어 생성) 간단한 자바 1.6 프로젝트, 다음과 같은 것 프로젝트

: 내 pom.xml에서

<foo> 
    <bar>${project.version}</bar> 
    <bar>${foo.bar}</bar> 
</foo> 

, Maven에게이 디렉토리를 필터링하도록 요청합니다 :

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <filtering>true</filtering> 
     </resource> 
    </resources> 
</build> 

이제 Windows 환경으로 foo.bar 속성을 정의합니다 (42과 동일).

는 젠킨스 관리 페이지에서 시스템 정보에서, 나는 환경 변수에서이 변수 절을 참조하십시오.

테스트

1 내가 젠킨스의 새로운 "받는다는 2/3 프로젝트"를 작성하고 기본 구성을 설정 : 자바와 메이븐 버전을, 메이븐 네트웍스 목표 (clean package). 나는이 작업을 실행, 그리고 마지막으로, 나는 myfile.xml 다음 얻을 :

이 경우
<foo> 
    <bar>1.0-SNAPSHOT</bar> 
    <bar>42</bar> 
</foo> 

이 두 변수는 메이븐에 의해 필터링되었습니다. 2

테스트 나는 젠킨스의 새로운 '프리 스타일 소프트웨어 프로젝트 "를 생성하고, 하나의 빌드 단계, 최고 수준의 메이븐 대상을 추가하여, 테스트 1에서와 동일한 구성을 설정합니다. 동일한 Maven 명령이 사용됩니다 (예 : clean package). 빌드가 완료되면, myfile.xml 보이는 같은 :

<foo> <bar>1.0-SNAPSHOT</bar> <bar>${foo.bar}</bar> </foo> 

그래서 분명히, 빌드는 프리 스타일의 프로젝트를 기반으로 할 때 환경 변수 foo.bar이 고려되지 않습니다.

내 질문 : 이러한 동작이 필요한 이유가 있습니까? 또는 젠킨스 버그입니까? (윈도우 2003 서버에 설치)


젠킨스의 v1.430, 메이븐 2.0.9 또는 메이븐 2.2.1 (같은 동작), 자바 1.6

답변

0

내가 같은 일을 경험하고 있습니다.

내 해결 방법은 메이븐 내가 때문에 메이븐의 버그이 생각 foo.bar=42

0

같이 제공된 텍스트 필드에 내 속성을 단계를 구축하고, 정의를 위해 "고급"을 클릭, 프로젝트의 구성 페이지로 이동했고 젠킨스 문제가 아니야.

Maven 3.0.3을 사용할 때 (Jenkins 작업 구성에 관계없이) 동일한 문제에 직면했습니다. Maven 3.0.4로 업그레이드 한 후 문제가 해결되었습니다.

관련 문제