Eclipse
이클립스(Eclipse)는 다양한 플랫폼에서 쓸 수 있으며, 자바를 비롯한 다양한 언어를 지원하는 프로그래밍 통합 개발 환경을 목적으로 시작하였으나, 현재는 OSGi를 도입하여, 범용 응용 소프트웨어 플랫폼으로 진화하였다.
자바로 작성되어 있으며, 자유 소프트웨어이지만 막강한 기능을 자랑한다. 2004년과 2005년 졸트 어워드(Jolt Award)를 수상했다. 식(蝕)을 뜻하는 이클립스란 이름은 자바를 개발한 회사의 Sun이란 이름을 염두에 두었다는 말도 있어 2003년도에 썬 마이크로시스템즈는 이클립스 파운데이션에 참여하지 않았던 이유중의 하나였지만 2005년도에 열린 EclipseCon의 키노트에서 Lee Nackman은 그 목적은 원래 마이크로소프트와 비주얼 스튜디오 생태 시스템을 겨냥한 것이었다고 말했다. 원래 IBM의 WebSpheare Studio Application Developer란 이름으로 개발되었던 것인데, 엔진부분을 오픈소스로 공개한 것을 기반으로 지금의 이클립스로 발전해 왔다. 각 목적별(C/C++ 개발자용, 자바 개발자용, 웹 개발자용 등등)의 다양한 배포판이 존재한다.
First setting
이클립스 첫 설치 후 수정 및 개선해야할 설정 목록은 아래와 같다.
우선, HEAP의 시작크기와 최대크기를 수정한다. eclipse.ini
파일에서 -vmargs
아래, 아래와 같이 수정한다.
Perference
- General
- Always run in background: 대기상태를 요구하는 작업은 Background에서 작업한다.
- Keep next/previous editor, view and perspectives dialog open: Editor, View, Perspectives의 다음/직전 상태 유지.
- Show heap status: 이클립스가 사용하고 있는 HEAP정보를 확인한 수 있다.
C/C++ Language Support
- Mars - http://download.eclipse.org/releases/mars
- Programming Languages
- C/C++ Call Graph Visualization
- C/C++ Development Tools SDK
- C/C++ Library API Documentation Hover Help
- C/C++ Unit Testing Support
- Programming Languages
Theme
- Jeeeyul's Eclipse Themes 2.2 - http://eclipse.jeeeyul.net/update/
Perspective
- Window > Perspective > Customize Perspective
- Action Set Availability 탭 > Available action sets: Editor Presentation 선택.
- Tool bar Visibility 탭 > Tool bar Structure: Editor Presentation > Toggle Block Selection 선택.
Category
- Eclipse:Oomph
- Eclipse:CDT
- Eclipse:ConfigurationSetting: Eclipse 사용전 환경설정에 대한 How to use.
- Eclipse:PluginDevelop: Eclipse 플러그인(Plug-in)개발에 관련된 내용.
Eclipse INI
-
-Xverify:none
: 클래스 검사 생략. 이클립스 실행 시간이 줄어든다. -
-XX:+UseParallelGC
: Parallel Collector를 사용. 병렬 가비지 컬렉션. -
-XX:-UseConcMarkSweepGC
: 병행 mark-sweepGC 기능을 수행하여 GUI 응답 속도 처리. -
-XX:PermSize=32M
: 이클립스 클래스 로딩 기본 메모리. -
-XX:MaxPermSize=128M
: 이클립스 클래스 로딩 최대 메모리. -
-XX:NewSize=32M
: JVM에서 새로운 객체가 생성 될때 로딩되는 최소 영역. -
-XX:MaxNewSize=32M
: JVM에서 새로운 객체가 생성 될때 로딩되는 최대 영역. -
-Xms256m
: 이클립스 실행시 최소 HEAP 메모리. -
-Xmx256m
: 이클립스 실행시 최대 HEAP 메모리.
Eclipse Heap size
이클립스를 사용하면서 시스템 과부하나 메모리 부족 현상을 느낀 경험이 많을 것이다. 이는 JVM이 메모리 영역을 사용하기 때문에 나타나는 현상이다. JVM은 메모리 관리를 Heap과 PermGen영역으로 나누어 관리하기 때문이다. JVM의 일반적인 실행 영역은 Heap영역이고, PermGen영역은 클래스 메타데이터를 관리해 주는 영역이다. 그렇게 때문에 JVM의 Heap영역과 PermGen영역을 늘려주면 보다 전보다 원할한 작업을 진행 할 수 있다. eclipse.ini 파일을 열어보면 vmargs밑에 Xms1024m와 Xmx1024m를 찾을 수 있다. Xms1024m은 Heap영역의 시작크기를 나타내고, Xmx1024m은 Heap영역의 최대크기를 나타 낸다. 여기서 주의할 점은 Heap영역의 최대크기는 Heap영역의 시작크기 보다 같거나 커야 한다는 사실이다. 만약 최대크기가 작아지면 시스템 부하에 걸릴 수 있다.
이클립스 에서 아래와 같이 선택하면 하단의 상태표시줄에서 확인할 수 있다.
Keyboard shortcut
- [http://eclipse-tools.sourceforge.net/Keyboard_shortcuts_(3.0.pdf Sourceforge Eclipse-Tools project] 1
- ShortcutWorld.com: Eclipse Shortcuts
- 이클립스 단축키 설명
이클립스에서 사용할 수 있는 단축키에 대하여 정리한다.
-
Ctrl + Shift + v
: 클립보드 이력을 선택하여 붙여넣기. -
Ctrl + F11
: Run. -
F11
: Debug. -
Shift + Ctrl + O
: 자동으로 현재 파일에 필요한 패키지를 import한다. -
Shift + Ctrl + F
: CheckStyle을 통한 자동 코드포맷팅. -
Shift + Ctrl + T
: Type open. -
Ctrl + O
: Method open. -
ALT + SHIFT + A
: 블럭 선택 기능 (세로로 선택이 가능하다) -
Shift + Ctrl + E
: Select an editor to switch (편집할 파일을 선택한다)
x11 forwarding
Preferences
프리퍼런스 설정 기능 및 목록을 정리.
- Code folding: General > Editors > Structured Text Editors 에서 Apperance 탭 중 Enable folding 선택.
- C/C++ code folding: C/C++ > Editor > Folding > Enable 에서 Enable folding when opening a new editor 선택.
Formatting
Section disable formatting
특정 구역만 포맷팅 기능을 OFF하고 싶을 경우 아래와 같이 주석을 추가하면 된다.
단, 이 기능은 Eclipse 3.6 이후 버전의 JDT에서만 적용 가능하다.
Plugins
- Eclox
- Eclox is a plugin which integrates Doxygen (and all above tools) into Eclipse and makes it really easy to use.
- See Doxygen, Graphviz, Mscgen
-
LLVM4EclipseCDT(2014-02-16)
- WindowsBuilder
- is a powerful and easy to use bi-directional Java GUI designer
- PyDev
- PyDev is a Python IDE for Eclipse, which may be used in Python, Jython and IronPython development.
- XPairtise
- A Distributed Pair Programming Plug-in For Eclipse
- Test & Performance Tools Platform (TPTP)
- The Test & Performance Tools Platform (TPTP) is an Eclipse tool used to profile plug-ins of the IDE that may run on different platforms.
- Amateras UML
- Subclipse
- subversion for eclipse.
- Android Development Tools (ADT)
- 이클립스 안드로이드 개발 툴.
- Eclipse-ERD
- Eclipse ERD Plugin.
- AmaterasERD
- Eclipse ERD Plugin.
- JGit/EGit
- JGit and EGit are implementations of the Git SCM (by King Penguin) in Java.
- Sequoyah
- 모바일 환경 개발을 위한 플러그인.
- ObjectAid
- Eclipse의 UML Diagram 자동생성 플러그인.
- Google Java Developer Tools
- Google 자바 개발자를 위한 툴.
- CheckStyle
- http://eclipse-cs.sourceforge.net/update/
- 코딩 표준 분석
- Coverlipse
- http://coverlipse.sf.net/update
- 코드 커버리지 테스트
- CPD
- http://pmd.sourceforge.net/eclipse/
- Copy/Paste 탐지
- JDepend
- http://andrei.gmxhome.de/eclipse/
- 패키지 의존성 분석
- Metrics
- http://metrics.sourceforge.net/update
- Complexity monitoring
Theme
- Jeeeyul's Eclipse Themes 2.2
- http://eclipse.jeeeyul.net/update/
- Download site: https://github.com/jeeeyul/jeeeyul.github.io/releases
- Local download: Jeeeyul.github.io-themes-v2.1.7.tar.gz
Remove Plugins
플러그인을 지우는 방법은 아래와 같다. Run Help > About Eclipse > Installation Details
, select the software you no longer want and click Uninstall
. (On Macintosh it is Eclipse > About Eclipse > Installation Details
)
How do I upgrade Eclipse Classic to Java EE?
- http://stackoverflow.com/questions/5849294/how-do-i-upgrade-eclipse-classic-to-java-ee
- http://wiki.eclipse.org/WTP_FAQ#How_do_I_install_WTP.3F
I want to develop HTML5 websites. I have already installed Java for Android development. I have Eclipse Classic 3.6 installed on my machine. Now I wish to have Java EE on the same machine. Is it possible? If so, let me know how to upgrade Eclipse Classic 3.6 to the Java EE development environment.
- Eclipse menu > Help > "Install new software"
- Then in the work with: "Indigo - http://download.eclipse.org/releases/indigo" (or your eclipse version)
- Then choose: Web, XML, Java EE and OSGi ...
- Then select: Eclipse Java EE Developer Tools
Eclipse Source Attach
JAR 라이브러리의 Source를 Attach하는 기능이다. 안드로이드도 다른 자바프로젝트와 동일하게 source attach를 세팅하시면 된다.
Troubleshooting
EnclosingASTNameJob
- Why is the Eclipse IDE getting slower?
- Eclipse-cdt to index my C++ code only
- Eclipse extremely slow, Code::Blocks has bad autocomplete; VS the best IDE?
- Eclipse very slow, any way to speed things up ?
이클립스 사용시 우하단에 "EnclosingASTNameJob"라는 문구가 출력되면서 느려지는 현상이 발생된다.
Eclipse Indexer don't work
아래와 같은 에러메시지가 나타난다.
An internal error occurred during: "C/C++ Indexer".
org.eclipse.cdt.internal.core.pdom.PDOMProxy cannot be cast to org.eclipse.cdt.internal.core.index.IWritableIndexFragment
이럴 경우 아래와 같이 해결하면 된다.
See also
- Gitpod - 오픈소스 원격 개발 플랫폼이다.
Favorite site
- Eclipse homepage
- Wikipedia (en) 이클립스에 대한 설명
- 이클립스에서 어플리케이션 시퀀스다이어그램으로 나타내는 방법 (TPTP 설치하기)
- AmaterasUML is an Eclipse plug-in for drawing UML class-diagram, and UML sequence-diagram
- Eclipse에서 Android 개발시 Proxy 설정하기 2
- The Eclipse OpenGL Pack is an Eclipse PlugIn that provides an easy-to-use way to develop and deploy OpenGL-enhanced Java applications within the Eclipse IDE
- 5 Best Eclipse Plugins: #1 (Eclox with Doxygen, Graphviz and Mscgen)
- 이클립스(Eclipse)와 이클립스 패키지 소개
- Eclipsepedia: CDT/User/FAQ 3
- [추천] Debugging Highly Complex Applications (Eclipse CDT Plugin: Multicore Visualizer)
C++ Unit Test
- Tutorial: How to try C/C++ Tests Runner for Eclipse CDT
- Eclipse Juno has landed with unit testing support for C++