CI_CD/ant

[ant] foreach 사용법

홍또~ 2020. 5. 18. 13:05

1.개요

jenkins로 ant를 이용해서 배포를 하다보면, 불편한점이 있다.

서버 한두대의 배포는 property값을 지정하고 그에 맞게 코딩을 하면 된다.

하지만 여러대의 서버에 배포를 할경우, 설정해야할 property의 값도 매우 많고

똑같은 내용의 코드를 여러번 반복하는 하드코딩이 되어버리며,가독성도 떨어진다

이때 쓸 수 있는것이 foreach문이다.

2.설명

<target name="타겟이름">         <echo message="@" /> </target> ------------------------------------------------------------------- <target name="test">             <foreach list="" target="타겟이름" param="변수" parallel="true" />         </target>

foreach list 에 들어갈 값은 문자열이다, 문자열은 ',' 로 구분되어있으야 하며
foreach문에서 ','기준으로 문자열을 분할한다.

target 에 들어갈 값은 반복이 필요한 target명이다

param 에 들어갈 값은 반복이 필요한 target 안에서 사용할 변수이다.
변수의 사용은 해당 타겟안에서 @ 를 통해 사용할 수 있다.

예시코드

<target name="test_echo">         <echo message="내가 좋아하는 동물은 : @" /> </target> ------------------------------------------------------------------- <target name="test">             <foreach list="" target="test_echo" param="echo" parallel="true" />         </target>     

출력

내가 좋아하는 동물은 : dog 내가 좋아하는 동물은 : cat 내가 좋아하는 동물은 : pig

3.주의점

ant 빌드오류 발생시

Problem: failed to create task or type foreach Cause: The name is undefined. Action: Check the spelling. Action: Check that any custom tasks/types have been declared. Action: Check that any <presetdef>/<macrodef> declarations have taken place.

1.ant 빌드스크립트에서 foreach구문을 사용하려면, ant-contrib.jar 가 ant홈 아래 lib폴더에 존재해야한다.
2.ant 빌드스크립트 상단에
<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
를 추가해야한다.