Gradle에서 참조표현(Reference expression, ${variable}
) 사용하기
요즘 이해력이 많이 딸린다. 하아.
역시 책과 레퍼런스를 살펴보는 것이 제일 좋군.
groovy를 기반으로 작성되는 대부분의 문자열은 작은 따옴표(‘’)를 사용한다. 이 문자열은 GString을 사용할 수 없다.
이 내용이 나의 삽질을 야기시켰다.
ext {
versions = [
springframework: '4.0.3.RELEASE'
]
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.5'
compile 'org.springframework:spring-core:${versions.springframework}'
testCompile 'junit:junit:4.11'
}
위의 내용으로 작성하면 어떻게 될까?
$ gradle dependencies
문제가 생긴다. ㅡ_-)> 화면에서 보는 것처럼, 내가 생각했던 것과는 다르게 ${versions.springframework}
에 ‘4.0.3.RELEASE’가 주입되지 않는다. 그냥 문자열 그대로 나온다.
왜 그런거냐!!!
라고 분노하며 내팽개쳤다가 최근에 다시 꺼내어 살펴보았다. 이제는 마음의 여유가 있는지라 왜 그런지 경우를 하나하나 살펴봤다.
사실, 참고서적과 API를 봤다면 수월하게 이해하고 넘어갔을 텐데… 지금까지도 남아있는 일단 실행해보고 보자.
라는 안일함이 나의 시간을 허비 시켰다. 허어…
Groovy and GString 을 살펴보면 GString이라고 하는 항목을 볼 수 있다. 이 GString이 적용되는 것은 큰 따옴표(“”)에 사용했을 때다.
하아… 바보다.
ext {
versions = [
springframework: '4.0.3.RELEASE'
]
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.5'
compile "org.springframework:spring-core:${versions.springframework}"
testCompile 'junit:junit:4.11'
}
잊지말자!
참조표현(${}
)를 사용하기 위해서는 큰 따옴표(“”)를 이용해서 문자열을 선언해야 GString으로 인식되어 처리한다는 것을!!