Eclipse
GitHub概要
eclipse-platform/eclipse.platform
Eclipse Platform - a comprehensive set of frameworks and common services that collectively provide a powerful software development infrastructure.
トピックス
スター履歴
開発ツール
Eclipse
概要
EclipseはEclipse Foundationが開発するオープンソースの統合開発環境(IDE)です。主にJava開発に使用され、プラグインシステムによる高い拡張性と無料利用が可能な点で多くの開発者に利用されています。
詳細
Eclipseは2001年にIBMによって開始され、現在はEclipse Foundationによって運営されているオープンソースの統合開発環境です。元々はJava開発に特化していましたが、現在ではC++、PHP、Python、JavaScript など多様なプログラミング言語をサポートしています。
Eclipse最大の特徴は、プラグインアーキテクチャによる高い拡張性です。コアとなるワークベンチプラットフォームに、必要な機能をプラグインとして追加できるため、個々の開発ニーズに合わせたカスタマイズが可能です。強力なコード補完、リファクタリング機能、デバッガー、Gitなどのバージョン管理システム統合、Mavenサポートなど、現代的な開発に必要な機能を網羅しています。
2024年6月リリースの2024-06版では、try-with-resources文の分割機能、Javadocスタイリングの改善、デバッグ機能の合理化、起動時間の高速化などが実現されています。Eclipse Public License 2.0の下で完全無料で利用でき、Windows、macOS、Linux等のクロスプラットフォーム対応も強みです。
メリット・デメリット
メリット
- 完全無料: Eclipse Public License 2.0により商用利用も含めて無料
- 高い拡張性: プラグインシステムによる柔軟なカスタマイズ
- クロスプラットフォーム: Windows、macOS、Linuxで動作
- 成熟したエコシステム: 長年の開発により豊富なプラグインとコミュニティ
- 強力なデバッグ機能: 他のIDEより高速なデバッグ機能
- 大規模プロジェクト対応: 複雑なプロジェクト管理に適している
- Maven統合: Mavenプロジェクトの優れたサポート
デメリット
- 重いパフォーマンス: プラグイン追加により動作が重くなりやすい
- メモリ消費: 大量のメモリを消費し、マシンスペックに依存
- 不安定性: クラッシュが多く、ショートカットが正常に動作しない場合
- 急な学習曲線: 初心者には多数のオプションとメニューが圧倒的
- UI の古さ: 現代的なIDEと比較してインターフェースが古く見える
- 設定の複雑さ: 多数の設定オプションにより適切な設定が困難
- 起動時間の長さ: ロード時間が長く、再起動が必要な場合が多い
主要リンク
- Eclipse IDE公式サイト
- Eclipse Foundation
- Eclipse Marketplace
- Eclipse Documentation
- Eclipse GitHub
- Eclipse Community
書き方の例
プロジェクト設定例
<!-- .project - Eclipse プロジェクト設定 -->
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>sample-project</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
クラスパス設定
<!-- .classpath - クラスパス設定 -->
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
実行設定例
<!-- .metadata/.plugins/org.eclipse.debug.core/.launches/Application.launch -->
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/sample-project/src/main/java/com/example/Application.java"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.example.Application"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="sample-project"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xms512m -Xmx1024m -Dspring.profiles.active=dev"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--debug"/>
<mapAttribute key="org.eclipse.debug.core.environmentVariables">
<mapEntry key="ENVIRONMENT" value="development"/>
</mapAttribute>
</launchConfiguration>
コードフォーマット設定
<!-- .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs -->
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
org.eclipse.jdt.core.compiler.compliance=17
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=17
# フォーマット設定
org.eclipse.jdt.core.formatter.tabulation.char=space
org.eclipse.jdt.core.formatter.tabulation.size=4
org.eclipse.jdt.core.formatter.indentation.size=4
org.eclipse.jdt.core.formatter.lineSplit=120
org.eclipse.jdt.core.formatter.comment.line_length=120
org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
org.eclipse.jdt.core.formatter.blank_lines_before_package=0
org.eclipse.jdt.core.formatter.blank_lines_after_package=1
プロジェクトファセット設定
<!-- .settings/org.eclipse.wst.common.project.facet.core.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<installed facet="java" version="17"/>
<installed facet="jst.web" version="4.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
Tomcat サーバー設定
<!-- .metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.server.core.prefs -->
eclipse.preferences.version=1
org.eclipse.wst.server.core.isServerProject=true
org.eclipse.wst.server.core.runtimes=Apache Tomcat v9.0\=/path/to/tomcat
# サーバー実行時設定
server.port=8080
server.contextPath=/sample-project
server.docBase=src/main/webapp
server.workDir=/tmp/tomcat-work
Maven 統合設定
<!-- .settings/org.eclipse.m2e.core.prefs -->
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
# Maven 依存関係自動ダウンロード設定
org.eclipse.m2e.core.downloadSources=true
org.eclipse.m2e.core.downloadJavadoc=true