이클립스eclipse의 Gradle 플러그인이 제대로 정리가 된 듯 싶다. 정말 오랜만에 Eclipse를 가지고 코딩을 해볼 생각으로 그레들 플러그인을 설치하려고 이클립스 마켓플레이스에서 그레들을 검색해보니 떡하니 Gradle IDE Pack을 제공하고 있다. 메이븐보다는 그레들을 이용한 빌드/배포를 해보고 싶은 욕심을 품는다.

이클립스는 참 좋은 도구다.




GVM(Groovy enVironment Manager) 설치방법

○ 설명

Ruby에는 RVM 과 rbenv라고 하는 도구가 광범위하게 사용되고 있다. 이 도구들을 통해서 루비를 설치하고 개발하고 실행하는데 필요한 환경을 구축하고 있다. Groovy에서도 이와 유사한 도구인 GVM(Groovy enVironment Manager,http://gvmtool.net/)라고 하는 도구를 제공하고 있다.

GVM은 대부분의 유닉스 기반 시스템에서 다양한 소프트웨어 개발도구들의 버전을 관리하는 도구다. 커맨드라인인터페이스(CUI 혹은 터미널)에서 설치, 전환, 제거 및 다른 후보자들에 대한 목록을 관리한다.

현재 제공하고 있는 대상들로는:

  • Groovy
  • Grails
  • Griffon
  • Gradle
  • Groovyserv
  • Lazybones
  • vert.x
  • Crash
  • Glide
  • Gaiden
  • JBake
  • Springboot

등이 있으며, Groovy를 대상으로 하는 제공대상들을 확대해갈 예정이다.
실행되는 플랫폼은 다음과 같다:

  • 리눅스
  • 맥OS
  • Cygwin
  • Solaris
  • FreeBSD

GVM은 bash를 사용하고 여러분의 시스템에서 가능한한 curl unzip에만 의존하도록 되어있다. 설치가 진행되기에 앞서 이미 설치가 되어있는지를 점검할 것이다. 여러분의 홈디렉토리 아래에 .gvm 이라고 하는 폴더가 생성되어 있다면, 등록되어 있는 지원대상들을 설치할 것이다.

○ 설치

설치하는 방법은 간단하다. 선호하는 bach 터미널을 열고 다음과 같이 입력한다.

curl -s get.gvmtool.net | bash

GVM이 실행되는데 필요한 요소들이 설치가 진행되면서 이와 관련한 내용들이 화면에 출력할 것이다. 경우에 따라서는 재시작을 요청할 수도 있다. 혹은 gvm-init.sh라고 하는 스크립트를 실행하여 환경을 설정하도록 요청하기도 한다.

$ ~/.gvm/bin/gvm-init.sh

○ 사용

GVM 사용하는 방법을 확인하는 방법은 간단하다.

$ gvm install <candidate: ex) groovy, springboot ...>

지금 내가 GVM을 통해서 설치한 gradle, groovy, springboot는 다음과 같다.



GVM의 설정과 관련된 파일은 ~/.gvm/etc/config 파일이다.

# make gvm non-interactive, great for CI environments
gvm_auto_answer=false/true

# prompt user to selfupdate on new shell
gvm_suggestive_selfupdate=true/false

# perform automatic selfupdates
gvm_auto_selfupdate=true/false

의 내용으로 설정이 가능하고, 실제로 설정된 것은 다음과 같다.

그레들gradle, 그루비groovy와 스프링부트springboot를 실행하는데 필요한 환경설정에 대한 부담이 확 줄어드니~ gvm으로 대동단결!!

그레들gradle(http://www.gradle.org/)에 대해서 발표했던 것이 작년이었다. 그 후 그레들은 마구마구 버전업을 하더니 2.1 버전이 나오는 상황에 이르렀다. 그러나 여전히 국내에는 그레들보다는 메이븐이 강세를 이루고 있고 그레들에 관련된 글도 많이 부족한 상황이다. 그레들이 가지고 있는 강점들이 우리나라에서는 쉽게 부각되지 못하고 있는 점이 참 아쉽다.


그레들에 대한 관심을 키워가면서 그레들에 대한 내용들을 정리해보고자 한다.

위키로 해야할지 어떻게 해야할지 고민중이지만...ㅎ 고민은 적게하고 빨리 진행해야지.



메이븐을 활용하고 있는 자바프로젝트들이라면 그레들로 이동하는 것이 쉽지 않을까? 몇몇 특수한 상황에서 문제들이 생긴다고 하지만, 그 외의 대부분의 경우는 별 문제가 없지 않을까? 그런 생각을 잠시 해본다.

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


스프링 등 다양한 라이브러리에서 Groovy DSL을 지원하고, 그레들gradle 사용도 늘어나면서 그루비Groovy(http://groovy.codehaus.org/)를 학습해야겠다는 생각에 프로젝트를 생성했다.

  • rocking-the-groovy - github
    gradle init --type groovy-library
    
    로 생성한 프로젝트를 이클립스에 import 하고 실행하려고 해도 정상적으로 인식이 안되는 문제에 봉착했다(지금 생각하면 매우 간단한 문제였는데… 역시 기초는 중요하다).

수동으로 환경설정을 하면 어찌어찌 실행할 수 있게 되기는 했는데 왜 그랬는지 풀 수 있는 방법을 알고 싶었다.

그러다가 문득…

‘eclipse’ 플러그인을 넣었던가?

하는 생각이 스쳐지나간다. .gitignore 내에는 이클립스와 인텔리제이에서 생성하는 생성물들에 대한 목록은 추가시켜놓고, 정작 build.gradle 에다가 이클립스 플러그인을 넣었던가? ㅡ_-)?


아니나 다를까…
추가하고 다시 프로젝트를 임포트 하니 정상적으로 동작한다.
하아. 머리가 나쁘면 몸이 고생한다더니...

+ Recent posts