Gradle | 테스크 생성 | 매개 변수 전달

태스크는 수행할 때 필요한 값을 매개 변수로 전달할 수 있다. 단순히 작업 처리 중 변수를 사용하면 된다. 예를 들어, 다음과 같다.

task msg {
    println("you typed: " + x)
}

여기에서는 println으로 변수 x의 값을 표시하고 있다. 이 변수 x에 값을 설정하려면 gradle 명령을 실행시에 다음과 같이 입력한다.

$ gradle msg -Px=값

이렇게 -P 후에 변수명을 지정하고 그 뒤에 등호로 값을 지정한다. 변수 hoge에 123 값을 전달 싶다면 -Phoge=123 식으로 기술하면 된다.

사용 예제를 아래에 올려 두었다. 이는 숫자를 전달하여 그 숫자까지를 더하는 예제이다.

task hello {
    doLast {
        def n = max.toInteger()
        for(def i in 1..n){
            println("No," + i + " count.")
        }
        println("--end.")
    }
}

테스크는 “max"라는 변수를 사용하여 최대 값을 지정한다. 예를 들어,

$ gradle hello -Pmax=5

이렇게 실행하면, 다음과 같이 메시지가 출력된다.

> Task :hello
No,1 count.
No,2 count.
No,3 count.
No,4 count.
No,5 count.
--end.

여기에서는 def n = max.toInteger()와 같이 하여 변수 max를 정수 값으로 변환한 것을 변수 n에 대입하고 있다. 그리고 이 n 값을 이용하여 for으로 반복 계산을 실시하고 있다. 이런 상태로 매개 변수를 사용하여 쉽게 값을 변수로 전달할 수 있다.