스프링개발자/201 - 일반

12. 그레이들 task 간단히 만들기 - 튜토리얼

2ndPrince 2020. 7. 22. 09:17

[배경]

스프링 개발자라면 maven과 gradle 중에 하나를 빌드 툴로 사용하게 된다.

필요한 외부의 라이브러리(의존성)들을 쉽고 빠르게 import할 수 있다.

본 글은 아래의 gradle의 공식 튜토리얼 문서를 참고 했다.

https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#tutorial_using_tasks


1. Hello World

`build.gradle` 파일이 핵심 파일이다. 프로젝트 의존성을 관리할 수 있고, task또한 추가 할 수 있어서이다.

Everything in Gradle sits on top of two basic concepts: projects and tasks.
Gradle에 있는 모든 것들은 결국 `프로젝트`와 `Task`이 두개의 개념으로 설명된다.

파일에 간단한 task하나를 추가하자

task hello {
    doLast {
        println 'Hello world!'
    }
}

윈도우라면 gradle -q hello

맥(리눅스) 라면 gradlew -q hello를 터미널에서 실행해보자

 

2. Build scripts are code

빌드할때 코딩을 쓴다

task upper {
    doLast {
        String someString = 'mY_nAmE'
        println "Original: $someString"
        println "Upper case: ${someString.toUpperCase()}"
    }
}

결과값 => 

task count {
    doLast {
        4.times { print "$it " }
    }
}

결과값 =>

3. Task dependencies

Task간에 의존성이 있다. 앞서 만든 hello 를 호출한다. dependsOn 키워드.

task intro {
	dependsOn hello
	doLast {
		println "I'm Gradle"
	}
}

결과값 =>

 

4. Extra task properties

튜토리얼 문서에 보면 몇가지 섹션이 더 있지만, 생략하고 이걸로 마지막.

task myTask {
    ext.myProperty = "myValue"
}

task printTaskProperties {
    doLast {
        println myTask.myProperty
    }
}

myTask에서 ext 객체를 통해 값을 설정하면, 다른 task에서도 접근이 가능하다는 원리다.

결과값은 다음과 같다 =>

 

다음시간에는 튜토리얼이 아닌, 프로젝트에 도움이 되는 task를 만들자