예전에 깃헙 프로젝트의 파일을 보려고 할 때는 보려고 하는 파일이 존재하는 위치까지 클릭클릭으로 찾아 들어갔다. 그런데 그럴 필요가 없었다.

프로젝트 내에서 [T] 키만 누르면 'File Finder'로 전환되면서 입력하는 이름에 부합하는 파일들을 검색하는 기능을 발견했다.

내 프로젝트에서 간단하게 'build.gr' 라고 입력하여 검색한 결과다. 깃헙 프로젝트에서 파일 찾으려고 고생하지 말자.




프로그래밍 그루비

저자
디에크 쾨니히, 기욤 라포르쥬, 앤드루 글러버, 폴킹, 존 스킷 지음
출판사
인사이트 | 2009-03-02 출간
카테고리
컴퓨터/IT
책소개
프로그래밍 그루비 는 그루비의 문법과 사용하는 법을 이해하기 쉽...
가격비교 글쓴이 평점  

짬짬이 그루비Groovy를 살펴보기 시작했다. 순 그레들gradle을 능숙하게 다루기 위한 목적으로 살펴보고 있는데,
그루비가 가지고 있는 매력도 상당하다.

Type plus(Type type) {} 를 재정의하니까 다른 형태로 동작한다.

package kr.pe.ihoney.groovy.study.begin

class Money {
    private int amount
    private String currency

    Money(int amount, String currency) {
        this.amount = amount;
        this.currency = currency;
    }

    /**
     * 재정의된 plus(+) 연산자
     * @param other
     * @return
     */
    Money plus(Money other) {
        assert null != other
        if(other.currency != currency)
            throw new IllegalArgumentException("Cannot add $other.currency to $currency");

        return new Money(amount + other.amount, currency);
    }

    @Override
    public int hashCode() {
        amount.hashCode() + currency.hashCode()
    }

    @Override
    public boolean equals(Object other) {
        if(null == other) return false
        if(!(other instanceof Money)) return false
        if(currency != other.currency) return false
        if(amount != other.amount) return false
        return true
    }
}
package kr.pe.ihoney.groovy.study.begin;

import static org.junit.Assert.*;

import org.junit.Test;

class MoneyTest {

    Money money

    @Test
    public void test() {
        def bulk = new Money(1000, "WON")
        assert bulk
        assert bulk == new Money(1000, "WON") //재정의된 ==(equals) 연산자 사용
        assert bulk + bulk == new Money(2000, "WON") // 재정의된 +(plus) 연산자 사용
    }

}


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

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

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

그러다가 문득…

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

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


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

참여링크 : http://onoffmix.com/event/19279

다른 분들과 함께 열심히 준비중인 컨퍼런스가 열립니다. ^^ 많은 참여 부탁드립니다.


어제 권남님이 그래들gradle 튜토리얼을 진행해주실 때 프롬프트 옆에 깃의 브랜치명이 나타나는 모습을 보고 신기해서 찾아봤습니다. 그러다가 발견한 곳이
tag를 checkout 할 때 detached 라고 나오는 것이 보기 싫어서 찾아봤다.
http://oliverdavies.co.uk/blog/2013/04/27/display-git-branch-or-tag-names-your-bash-prompt
에 나와있는 일부 쉘parse_git_tag 을 추가해서 적용 후 확인 OK.

git branch 를 checkout 했을 경우:


git tag에 대해서 checkout 했을 경우:



+ Recent posts