728x90
반응형
그레들에서 빌드를 하려면 먼저 빌드 스크립트를 작성해야 한다. 그레들 문법(DSL)에 따라 텍스트 파일로 작성하기 때문에 별도의 IDE는 필요없다.
그루비 특유의 문법
그레들의 빌드 스크립트는 그루비 스크립트다. 하지만 그레들이 제공하는 DSL 덕분에 그루비를 거의 의식할 필요 없이 빌드 스크립트를 작성할 수 있다.
하지만..!! 그루비 특유의 문법을 모르면 그레들의 빌드 스크립트를 읽거나 작성할 때 어려움이 있을 수 있다. 자주 사용되는 것만 정리해보자.
문자열
크게 두가지가 존재
- 작은따옴표(') : 자바의 문자열과 거의 같은 용도
- 큰따옴표(") : 문자열 내부에 $ 기호로 동적인 내용을 넣을 수 있다. 내부적으로 그루비의 GString 클래스가 사용된다.
// 작은 따옴표
String name = 'Corn'
// 큰 따옴표 (중괄호 생략 가능)
String title = "Project: ${project.name}"
String title = "Project: $name"
// 여러줄 표기(작은 따옴표, 큰 따옴표 동일)
String greet = '''*****
* Hello *
*****'''
메서드 호출 시 괄호 생략
메서드를 호출할 때 ()를 생략할 수 있다.
println('Hello World!')
println 'Hello World!'
// 인수가 여러 개일 때
printf '%5.3f', 345.0
// 인수가 없을 때(인수가 없을 때는 ()를 생략할 수 없다.)
println // NG
println() // OK
// 메서드 호출이 톱레벨(최상위) 식이 아닐 때 - ()생략 불가능
println someMethod 'foo' // NG
println someMetohd('foo') // OK
def를 이용한 형 지정 생략
형 지정을 생략할 때는 def 키워드를 이용
// 형을 지정한 변수 정의
String name = 'Corn'
// 형을 생략한 변수 정의
def name = 'Corn'
클로저
자바 8의 람다(Lamda)나 다른 프로그래밍 언어에서 말하는 함수 객체 정도로 이해하면 된다.
// 클로저 정의
def clos1 = { mes -> println "Hi, $mes" }
def clos2 = { println "Hi, $it" }
// 클로저 실행
clos1.call('Corn')
clos2('Corn')
clos2 'Corn'
// 태스크 정의1.
task hello {
println 'Hello Gradle world!'
}
// 태스크 정의2.
// 태스크에 추가할 처리를 클로저로 정의
def clos = { println 'Hello Gradle world!' }
// 태스크 정의
task hello {}
hello.leftShift(clos) // << 는 leftShift() 생략형
728x90
반응형
'프로그래밍 노트 > 빌드도구' 카테고리의 다른 글
빌드툴이란 무엇인가? (feat. Gradle) (0) | 2022.08.11 |
---|---|
[Gradle] 그레들 빌드 스크립트 작성과 실행 (0) | 2021.04.07 |
[Maven] Maven Resources Plugin (0) | 2020.09.01 |
[Maven] 메이븐 모듈 (0) | 2019.07.11 |
[Maven] 메이븐 프로파일_1 (0) | 2019.05.02 |