2013-06-20 2 views
0

'Invoke Ant'빌드 단계에서 Ant 대상을 동적으로 호출 할 수있는 방법이 있습니까?Jenkins에서 Ant 대상을 동적으로 호출하기

<target name="1" description="1"> 
    <exec executable="${RES_DIR}/1.sh" failonerror="true"> 
    </exec> 
</target> 

<target name="2" description="2"> 
    <exec executable="${RES_DIR}/2.sh" failonerror="true"> 
    </exec> 
</target> 

<target name="3" description="3"> 
    <exec executable="${RES_DIR}/3.sh" failonerror="true"> 
    </exec> 
</target> 

그리고 모두가이 같은 build.xml 파일을 사용하는 젠킨스 빌드를 원하지만 각 빌드에 대한 특정 목표를 호출 할 수 있도록 : 당신이 가진 build.xml 파일을 말해봐. 프로젝트를 생성해야 할 때마다 자동으로 수행되기를 원하기 때문에 이러한 타겟을 하드 코딩하고 싶지 않습니다. 이것이 가능한가 또는 미리 프로젝트를 만들고 Ant 타겟을 수동으로 설정해야합니까?

답변

1

targetif 속성을 사용하는 간단한 트릭이 있습니다. 예를 들어

:

<target name="run" depends="1,2,3" /> 

<target name="1" description="1" if="run1"> 
    <exec executable="${RES_DIR}/1.sh" failonerror="true"> 
    </exec> 
</target> 

<target name="2" description="2" if="run2"> 
    <exec executable="${RES_DIR}/2.sh" failonerror="true"> 
    </exec> 
</target> 

<target name="3" description="3" if="run3"> 
    <exec executable="${RES_DIR}/3.sh" failonerror="true"> 
    </exec> 
</target> 

그런 식으로, 당신은 (일반적으로 참 좋은 선택입니다) 대상 run를 호출하고 임의의 값으로 재산 runX을 설정합니다. 대상 X 만 실제로 실행됩니다.

+0

어디에서 runx 속성을 설정할 수 있습니까? – gjw80

+0

jenkins의 설정에서 –

0

아마 정상적으로 작동하지만 Jenkins 빌드 인터페이스 요구 사항을 충족시키기 위해 빌드를 변경하는 것은 약간 불편합니다. 일반적으로하는 일은 빌드 매개 변수를 '선택'이라고 설정하고 사용자가 드롭 다운 목록에서 호출 할 대상을 선택할 수있는 가능성을 부여하는 것입니다.

그 선택 매개 변수가 목표라고하면 'invoke ant'빌드 섹션에서 수행해야 할 작업은 % target %를 참조하는 것이고 Jenkins가 대신합니다.

'선택'또는 다른 유형의 빌드 매개 변수 (예 : 텍스트)를 사용하는지 여부는 특정 요구에 따라 달라집니다.

관련 문제