Jenkins는 작업이 Maven 2/3 프로젝트이거나 자유 형식 프로젝트 인 경우 환경 변수를 다르게 관리하는 것으로 보입니다.Jenkins는 자유 형식 프로젝트에서 환경 변수로 Maven 리소스를 필터링하지 않습니다.
테스트를 보여 드리겠습니다.
그것은이 myfile.xml
src/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