문제

그레이들gradle 으로 구성한 멀티프로젝트를 이클립스에서 불러오게 되면 Classpath Dependency Validator 가 검증되지 않은 클래스패스 상에 의존성을 가진 프로젝트가 있다는 메시지를 던진다.

꽤 거슬린다. ㅡ_-);;

이에 대해서 인터넷 검색을 해봤다.

여기서 해답을 보면 프로젝트를 선택하고 gradle cleanEclipse eclipse 를 해서 이클립스가 그레이들 네이처를 잊어 먹도록 한 후에 수동으로 처리하도록 하는 수를 쓰고 있다.



해결책

해결방법은 간단하다.

[Preference] - 'Validation' - 'Classpath Dependency Validator' 비활성화



하면 끝난다.

경고를 무시해도, 그레이들에 의해서 프로젝트 의존성이 처리가 되기 때문에 큰 문제는 없다.

Eclipse 3.6.x 버전이 되면서 노트북에서 실행되는 이클립스가 얼어버리는 되는 상황들이 빈번하게 발생하기 시작했다. 코딩을 하다가 탭을 바꾸거나 자동완성 기능을 사용하려고 하면 화면이 멈추는 증상에 너무 짜증이 나서 어떻게 할까 고민하던 차다.

지금 노트북에는 외장그래픽으로 ATI Radeon 이 포함되어 있다.

우분투랑 ATI 라데온 조합이 안좋은 건 이 노트북을 사용하면서 실감했다. 우분투와 궁합이 괜찮은 건 엔비디아nVidia 와 인텔intel 이다.

이클립스를 실행할 때마다 너무 짜증이나서 운영체제를 다시 설치할까 했는데, 문득 이에 대한 인터넷 검색을 해보자 하는 생각이 들었다(이렇게 쓴지 한달이 좀 넘은 것 같은데...).

인터넷 검색으로는 ubuntu 14.04 eclipse slow 으로 검색을 시작했다. 그랬더니 나오는 첫번째 결과가 똬악!

을 통해서 간단하게 방법을 찾았다. 해결책은 크게 두 가지 방법이 있다.

  • eclipse.sh 실행 스크립트 작성

    export SWT_GTK3=0
    export UBUNTU_MENUPROXY=0
    ./eclipse
  • eclipse.desktop 애플리케이션 등록정보 수정

    [Desktop Entry]
    Version=4.4
    Name=Eclipse
    Comment=Eclipse IDE
    Exec=env UBUNTU_MENUPROXY=0 SWT_GTK3=0 =/home/honeymon/development/eclipse/eclipse
    Icon=/home/honeymon/development/eclipse/icon.xpm
    Terminal=false
    Type=Application
    Categories=Utility;Application

위의 두 가지 방법 중에 후자의 것을 사용했다.


문제가 생긴 이유는, GTK3 의 SWT 가 최적화되어 있지 않기 때문에 나타나는 버그로 보인다.

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

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




  1. Yikego 2014.10.30 17:16 신고

    안녕하세요.
    궁금한 점이 있는데,
    Gradle IDE Pack과 Gradle Integration for Eclipse의 차이점이 뭔지 혹시 알 수 있을까요?

    • 서로 이름은 다르지만 같은 플러그인이라고 보시면 됩니다.
      @_@)~ 처음에는 단순한 빌드 플러그인(Gradle Integration for Eclipse)으로 나왔다가,
      편집기와 여러가지 플러그인이 한데묶인 통합버전(Gradle IDE pack)으로 정리가 되었습니다.

  2. hong 2014.12.12 14:10 신고

    Gradle 때문에 IntelliJ로 넘어갈까... 하고 생각했었는데
    역시 우리의 친구 이클립스를 써야겠습니다.

    • ㅎㅎ 하지만... 이클립스에서 그레들을 완벽하게 지원하는 것은 아닌지라,
      인텔리제이를 사용할 수 있다면 인텔리제이를 사용하느 것이 좋지요. ^^;

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

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

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

그러다가 문득…

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

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


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

이클립스에서 참조한 라이브러리의 소스코드가 보이지 않는 경우가 있다.

그럴 때는, 프로젝트Project의 속성Properties를 열어서 'Java Build Path' 탭 중 [Order and Export] 에서 'Web App Libraryes' 항목을 제일 밑으로 내리면 된다. 'Web App Libraries'를 선택하고 오른쪽에 활성화된 [Bottom] 버튼을 누르면 된다.


+ Recent posts