Tools/BuildTools

참조표현을 사용하려면 큰 따옴표("") 이용해서 문자열GString을 선언하자!

허니몬 2014. 4. 22. 17:11

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으로 인식되어 처리한다는 것을!!