조리법:워크벤치가 시작되지 않을 때

위클립스
이동: 둘러보기, 찾기

이클립스 4.2 버전 부터는 종종 워크스페이스를 열 수 없는 경험들이 보고된다. 이런 문제를 일으키는 경우는 대략 다음과 같다:

우선 빈 워크스페이스를 열어 이클립스가 잘 실행되는지 확인한다. 그래도 안된다면, 이 조리법 역시 적용할 수 없으므로, 다른 방법[1]을 찾아봐야 한다.

목차

[편집] 원인

이클립스 4.X는 워크벤치의 여러 정보들을 EMF 모델로 별도로 저장해 둔다. 이 정보에는 뷰나 에디터, 커맨드나 핸들러, 메뉴등에 대한 다양한 정보와, 이 정보를 확장하는 모델 애드온등이 포함된다.

이 모델을 구성하는 정보의 상당 부분들은 기존 레거시 확장(메뉴 확장점, 뷰 확장점 등등)들에 근거해서 빌드되는데, 기존 확장들은 자신의 기여물들이 E4의 모델로 취급될 것이라는 고려하지 않았고(애초에 불가능 하고 그래서도 안될 일이지만), E4의 모델 역시 아직 완벽하지 않기 때문에, 3.7 이하 비전에 비해 불안한 모습을 종종 보인다.

모델 자체는 단일 빌드되어 시리얼라이즈 되므로, 이론상 다음 번 워크벤치 실행을 훨씬 빠르게 만들어 주도록 고안되었다. 그래, 빠른거 같냐? 응? 빠른거 같아? 문제는 이 모델의 유효성 검증이 제대로 안된다는 것이다. 예를 들어 특정 플러그인이 삭제되거나 업그레이드된 경우, 해당 플러그인이 제공하던 모델 애드온 기능은 오작동하거나 에러를 보고하게 된다.

즉, 한 번 배포되고 거의 변경될 일이 없는 RCP 제품의 경우엔, 이 전략이 나을지 몰라도, 하루가 멀다하고 플러그인을 설치하고 업데이트 하는 개발자 IDE에게는 골칫덩이가 된다.

[편집] 해결책

해결책은 의외로 간단하다. 실행시 옵션으로 -clearPersistedState를 붙여 주면 된다. 이 옵션은 캐시된 워크스페이스 모델을 지우고 새로 빌드하게 한다. 이러면 기존의 이클립스 3.7 이하 버전처럼 플러그인들의 확장을 로드하게 되고, 다시 캐시 모델을 빌드한다.

[편집] OSX

open -a Eclipse.app --args -clearPersistedState -clean

[편집] Windows

eclipse.exe -clearPersistedState -clean

[편집] 결론

이 문제는 여러분이 인지하는 것보다 매우 빈번히 일어난다. 어떤 경우엔 그저 에러 로그 한 줄에 머물수도 있지만, 다양한 보이지 않는 문제가 수반될 수 있으므로, 종종 이 옵션을 이용하여 캐시를 파기하는 것을 권장한다.


[편집] 참조

  1. 다른 방법: 보통 워크스페이스의 .metadata 폴더를 지우는 것이다.

이 기사에 대한 의견은 토론 페이지를 통해 나눌 수 있습니다.

개인 도구
이름공간
변수
행위
포탈
탐색
도움
도구모음