Eclipse 4.7 Oxygen 新機能 30+ / Java 9 を試そう!

  • 78
    Like
  • 0
    Comment

毎年 6 月恒例の https://eclipse.org/ の統合開発環境 Eclipse の最新版 4.7 Oxygen リリースに合わせて、Pleiades All in One (AiO) をリリースしました。Pleiades AiO は Windows および Mac 向けに、Eclipse 本体と Pleiades プラグインおよび各言語向けの便利なプラグインのセットです。Pleiades プラグインは Eclipse や Android Studio のような Java アプリケーションを AOP で動的に日本語化するための Java エージェントです。

 
Pleiades AiO ダウンロード
http://mergedoc.osdn.jp/pleiades_distros4.7.html
eclipse_4.7_oxygen.jpg

 

Pleiades AiO 対象環境

Linux 版はありません。Linux で Eclipse を日本語化したい場合は AiO ではなく、Pleiades プラグインを単体でダウンロードし、あらかじめインストールしておいた素の Eclipse に適用してください。

Eclipse リリーストレイン

Eclipse のコードネームは頭文字をアルファベット順として、天体・神・科学をテーマとして毎年多くの案が出され投票によって決定されています。今回の頭文字は O で Odyssey、Osiris など多くの候補の中から、投票の結果 Oxygen になりました。Pleiades AiO は以下の Eclipse リリースに連動してリリースします。

メジャーリリース

バージョン 本家リリース日 備考
4.5 Mars 2015/06/24
4.6 Neon 2016/06/22
4.7 Oxygen 2017/06/28 今回リリース
4.8 Photon 2018/06/27
4.9 Q***** 2019/06/26 コードネーム 2018/02 決定

メンテナンスリリース
2017/09/27 Oxygen 1a 追記、Oxygen 1 は Pleiades AIO ではリリースしない

バージョン 本家リリース日 備考
4.7 Oxygen 1 2017/09/27 9/21 リリースの Java 9 に対応予定
4.7 Oxygen 1a 2017/10/11 Java 9、JUnit 5 フルサポート
4.7 Oxygen 2 2017/12/27 定例バグフィックス
4.7 Oxygen 3 2018/03/28 定例バグフィックス

メンテナンスリリース変更点

Oxygen 1a (4.7.1a.v20171019)

Pleiades All in One の変更点

・ PHP パッケージの PHP プラグインが機能していていなかったため修正

Pleiades の変更点

・ Java 9 環境で起動すると日本語化できない問題を修正 (Javassist バージョンアップ)
・ macOS・IDEA 系で Info.plist の English から Japanese への書き換え廃止 (High Sierra メニュー不具合回避)
・ 訳追加修正 Eclipse: AmaterasModeler, Buildship、EGradle、FreeMarker, SpotBugs
・ 訳追加修正 IDEA 系: IntelliJ、Android Studio、Gogland

Oxygen 1a (4.7.1a.v20171012)

Pleiades All in One の変更点
Eclipse Class Decompiler へのアドウェア混入について

・ Eclipse Class Decompiler プラグインを Enhanced Class Decompiler に変更

Oxygen 1a (4.7.1a.v20171011)

Eclipse の変更点

・ Java 9、JUnit 5 フルサポート
・ macOS High Sierra メニュー不具合対応

Pleiades All in One の変更点

・ Java 9 正式版同梱 (32bit 版は廃止されたため同梱なし)
・ WTP Tomcat 9 のサーバー設定を Java 8 から Java 9 に変更
・ FindBugs プラグインを SpotBugs に変更 (プロジェクトを右クリック > SpotBugs)
・ Pleiades を含む各プラグイン、処理系バージョンアップ

Pleiades の変更点

・ 訳追加修正 Eclipse: Java 9, JUnit 5 関連、Eclipse Class Decompiler
・ 訳追加修正 IDEA 系: IntelliJ, Android Studio
・ インストーラーの設定ファイル編集ロジックの修正

Pleiades AiO 追加・変更点

設定済み Java 9 追加

80 以上の機能が追加された Java 9 が、Full Edition に含まれるようになりました。別途 JDK をダウンロード/インストール/設定することなく、プロジェクト作成時またはプロジェクトのプロパティで指定するだけで、すぐに Java 9 を利用することができます。 注意:現在の最新版は Java 8 です。Java 9 はアーリーアダプター向けの評価版です。 2017/10/11 Java 9 正式版同梱

▼ Java 6、7、8、9 付属 & パス設定済み
スクリーンショット 2017-05-10 22.24.11.png

▼ プロジェクト作成時に選択するだけ
スクリーンショット 2017-05-10 22.20.30.png

設定済み Tomcat 9 追加

HTTP/2 や Servlet 4.0 などに対応した Tomcat 9 が Full Edition に追加されました。こちらも設定済みのためサーバー・ビューからサーバー作成時に選択するだけで、すぐに利用できます。下記デフォルト設定にないバージョンの Tomcat と Java の組み合わせが必要な場合は、追加ボタンを押して、Java および Tomcat のパスを指定して作成してください。 注意: 現在、Tomcat 9 はアーリーアダプター向けの評価版です。また、現時点では WTP が Java 9 に対応していないため、Tomcat 9 には Java 8 が設定されています。 2017/10/11 WTP が Java 9 に対応しました。Tomcat は 9.0.0 アルファ版が 2 年ほど続きましたが、2017/9/30 に 9.0.1 ベータ版になりました。現在の Tomcat 安定リリースは 8 系です。

▼ Tomcat 6、7、8、9 付属 & パス設定済み
Tomcat

▼ サーバー作成時に選択するだけ
スクリーンショット 2017-05-20 12.58.05.png

Minimalist Gradle エディターを EGradle エディターに変更

Eclipse 公式 Gradle プラグインの Buildship はエディターの機能が無いため、最低限の機能を持つ Minimalist Gradle エディターを同梱していましが、今回から EGradle エディターに変更しました。Gradle のタスク実行・管理やプロジェクト作成ウィザードは、今までどおり Buildship により提供されます。

スクリーンショット 2017-06-16 22.00.44.png

EGradle は Buildship と同じような機能を持つプラグインでしたが、つい先日エディター部分のみが分離され、EGradle エディターとして独立して利用できるようになりました。EGradle エディターには下記のような機能があります。

  • コード補完およびツールチップ
  • 構文強調表示
  • アウトライン・ビュー・サポート
  • 解析エラー対応
  • 括弧の切り替え、強調表示、自動終了
  • ブロックコメントのショートカット
  • 他の Gradle ファイル、URL、Java、Groovy の型へハイパーリンク

逆コンパイラー・プラグインに自動ソース添付機能が追加

クラスファイルを開くときに、Maven リポジトリやローカルに Java ソースがある場合、自動的に添付される機能が設定できるようになりました。その他、エンコーディングも指定できるようになっています。

スクリーンショット 2017-06-13 23.22.59.png

Ultimate 版に Ruby、Perl プラグイン追加

Ultimate 版に Ruby (DLTK)、EPIC プラグイン追加しました。デフォルトで以下のようにメニューバーにパースペクティブを切り替えるためのアイコンが表示されます。ただし、Ruby や Peal のコンパイラや実行環境は付属していないため、別途自分でインストールする必要があります。

スクリーンショット 2017-06-27 19.55.00.png

Pleiades プラグインの改善

  • 高速化、メモリ使用量削減、翻訳リソース効率化
  • 設定や他のプラグインの更新を検知し、次回起動時に自動的に -clean 起動
  • 127 個のプラグインの翻訳追加と修正

その他

  • Eclipse 4.7 Oxygen 対応、各ランタイム・プラグインのバージョンアップ。
  • Window Builder で作成した SWT プロジェクトが実行できない問題を修正。(JFace の jar カスタマイズを廃止し、metadata で設定するように変更)
  • JBoss Tools の LiveReload プラグインのカスタム版が含まれていると通常の JBoss プラグインがインストールできないため同梱廃止。
  • 一般 > Glance 検索 > 始動時に表示 の自動デフォルト設定を OFF に変更。あらゆるビュー要素を書き換えることによる問題発生を低減。今のところ、使用するときにショートカット Ctrl + J で開き、使用しないときは Esc または ✕ で閉じておくことを推奨。

既知の不具合
AiO に含まれている、エディターの背景色やフォントの色などをテーマとして設定可能なプラグイン Eclipse Color Theme に既知の不具合があります。設定すればエディターに反映され機能しますが、設定時のプレビューができません。(設定 > 一般 > 外観 > 色テーマ) このプラグインは数年更新されておらず、今のところ修正される目処がたっていません。

 

今話題のプラグイン

AiO には含まれていませんが、今話題になっているプラグインをご紹介します。

Darkest Dark テーマ

Darkest Dark テーマというプラグインがマーケットプレースで大人気となっています。Eclipse 標準のダークテーマより、ダークなテーマで、アイコンは独自の置き換え機構によりフラットデザインになります。このテーマを使用するにはプラグインをインストールし、設定 > 一般 > 外観 のルック&フィールを Darkest Dark に設定します。また、合わせて 設定 > EGradle > エディター > 構文の色指定 > ダーク・テーマ向けのデフォルトに戻す も設定すると良いでしょう。

スクリーンショット 2017-06-21 21.54.54.png

インストールするには btn-install.png を実行中の Eclipse にドラッグ&ドロップまたは、更新サイト http://www.genuitec.com/updates/webclipse/ci/ を使用してください。

Kotlin プラグイン

Google が Android の開発言語として正式にサポートの追加を表明したことにより、Eclipse の Kotlin プラグインのダウンロード数が急激に増えているようです。Kotlin はロシアの Jetbrains 研究所で生まれ (本社はチェコの首都プラハ)、今後は非営利の財団へ移管が予定されている Java 仮想マシン上で動く言語で、後発なだけあり、多くのモダンな特徴を持っています。Eclipse 用のプラグインも Jetbrains 製ですが、機能は最低限になっているようです。

スクリーンショット 2017-05-28 15.30.43.png

インストールするには btn-install.png を実行中の Eclipse にドラッグ&ドロップまたは、更新サイト https://dl.bintray.com/jetbrains/kotlin/eclipse-plugin/last/ を使用してください。

 

Eclipse Oxygen 新機能・変更点

Eclipse 4.7 Oxygen では非常に多くの機能追加、バグ修正、改善が行われました。いくつかの機能は Neon にもバックポートされています。大きな変更はありませんが、知っておくと便利な機能が含まれています。その中から一部ですが、ご紹介します。

コード・カバレッジ・プラグイン EclEmma 3.0

コード・カバレッジを計測するプラグインとして定番となっていた EclEmma が eclipse.org の正式なプロジェクトとして承認され、標準になりました。実行やデバッグと同じようにカバレッジ実行できます。なお、大きな問題ではないのですが、検索プラグイン Glance を表示しているとカバレッジのグラフが表示されなくなる (数値は表示される) Glance 側の問題があるため、回避策として Glance を使用していないときは Esc や ✕ ボタンで Glance を閉じておきましょう。

スクリーンショット 2017-05-25 22.49.29.png

Gradle プラグイン BuildShip 2.0

オフラインモードがサポートされました。有効にすると Gradle 呼び出し時の引数に --offline が追加されます。

スクリーンショット 2017-05-29 22.59.23.png

その他、以下の機能が追加・変更されています。

  • マルチプロジェクトの複合ビルドのサポート
  • 高解像度、ダークテーマ対応
  • インポートウィザードの簡略化
  • より正確なプロジェクト同期
  • Java 最小バージョンが 1.7 に
  • Mars から Oxygen に移行する場合は再インポートが必要
  • インポート時の JAVA_HOME 設定不可、代わりに gradle.properties を使用
  • インポート時の Java 引数や Gradle プロパティ設定不可、代わりに gradle.properties を使用

Git 統合 4.8

機能の追加

  • 分離された HEAD にリモートブランチ適用をサポート(Bug 485396)
  • 複数の ICommitMessageProvider 実装をサポート(Oracle Bug#376388)

ユーザビリティの向上

  • ボタンラベルにアクションの動詞を使用
  • ハードリセットダイアログのボタンラベル
  • ローカル変更の破棄を変更するダイアログボックスのボタンラベル
  • PullResultDialogのボタンに動詞を使用する(Bug 514320)
  • ステージングビューのコンテキストメニューが表示されたらフォーカスを設定
  • git ステージングビューのボタンにニーモニックを追加
  • ステージングビューのフォルダノードをダブルクリックして展開可能に
  • サブモジュールの進捗報告を改善
  • Eclipse 上に git URL がドロップされたときにクローン・ウィザードを開く(Oracle Bug#513247)
  • FetchGerritChangePage のノンブロッキング・コンテンツ・アシスト(Bug 515733)
  • FetchGerritChangePage をリファクタリングして単純化し、フォアグラウンド実行オプションを削除(Bug 496493)
  • FetchGerritChangePage の Change フィールドへの貼り付けの改善
  • FetchGerritChangePage のタグフィールドに BranchNameNormalizer を指定
  • ダブルクリックで DiffEditorOutline のフォルダノードを展開/折りたたむ
  • FetchGerritChangePage のブランチ名フィールドを改善
  • PushBranchPageにBranchNameNormalizer を追加(Oracle Bug#515279)
  • git ステージングビューのボタンにニーモニックを追加(Bug 515040)
  • 実行中ダイアログの「続行」ボタンにニーモニックを追加(Bug 514480)

パフォーマンスの向上

  • モデル対応の git 同期で複数のツリーウォークを避ける(バグ516358)
  • EclipseGitProgressTransformer のスロットル更新(Bug 516276)

バグの修正

  • 閉じられたプロジェクトや素のリポジトリでは自動共有しない
  • GitProjectData で NoWorkTreeException を防止(Oracle Bug#517056)
  • RepositorySelectionPage で NPE を修正(Bug 517044)
  • 多くのデフォルト・ハンドラを削除(Oracle Bug#495064)
  • CommitEditor:チェックアウトボタンの表示を修正(Bug 516679)
  • 削除されたリソースとの同期を修正(Oracle Bug#516426)
  • AbstractBranchSelectionDialog でノード選択を修正(Oracle Bug#516411)
  • macOS 上の HiDPI 行番号ルーラーの改善(Bug 516322)
  • すべての環境設定スコープで core_defaultRepositoryDir を検索(Oracle Bug#496737)
  • SubmoduleUpdateCommand で NPE を修正(Oracle Bug#514936)
  • スペルチェック無効時の SpellCheckingMessageArea クリーンナップと NPE の防止(Bug 515999)
  • 複数のリソースを HistoryView にリンクするための回避策(Oracle Bug#392948)
  • HyperlinkTokenScanner をより堅牢に(Oracle Bug#515730)
  • reflog ビューを非同期にロード(Oracle Bug#515606)
  • リポジトリ・ビュー内の表現トグル・コマンドを修正(Oracle Bug#495064)
  • FETCH_HEAD のみが変更されたときに EGit 状態を更新(Oracle Bug#437362)
  • 作業領域がまだ準備されていないときは、装飾しない(Bug 515994)
  • 不正な IAdaptables に対する健全性チェックを追加(Bug 515993)
  • チェックアウト文言修正

ビルドとリリースエンジニアリング

  • ブリッジを 9.4.5 に更新
  • Maven プラグインを更新
  • Oomph 設定を更新

Java プラグイン JDT 3.13

クリックした行まで実行

ブレークポイントで停止した行からキャレットがある行まで Ctrl+R (Cmd+R) で実行できる機能が以前からありましたが、今回、垂直方向ルーラーを Ctrl+Alt+左クリック (Cmd+Opt+左クリック) した行まで実行できるようになりました。

5月-11-2017 20-49-29.gif

概説ルーラーのブレークポイント表示

右側の概説ルーラーにもブレークポイントが表示されるようになりました。注釈設定から OFF にすることもできます。

477b8864-5bca-f7ad-99fe-49049a08bcf2.png

トリガーポイント

今回追加されたトリガーポイントは、特定のブレークポイントに設定することで、そのブレークポイントを通過するまで、その他のすべてのブレークポイントで停止しなくなります。これはヒット・カウントや条件付きブレークポイントで設定が難しい場合に便利です。例えば、下記の場合は、1 回目の x() 呼び出しでは 15 行目で停止せず、トリガーポイントとして設定された 2 回目の x() 呼び出し通過後は 15 行目で停止するようになります。トリガーポイントとなるブレークポイントにはアイコンの右下に T が表示され、それ以外のブレークポイントは T に斜線が入ったアイコンとして表示されます。

スクリーンショット 2017-05-12 21.00.51.png

条件付き監視ポイント

監視ポイントはフィールドに設定可能な特殊なブレークポイントで、アクセスや変更があった場合に停止します。今回、条件付きブレークポイントと同じように監視ポイントにも条件を設定できるようになりました。

スクリーンショット 2017-05-14 16.05.40.png

トレースポイントの切り替え

トレースポイントを使用すると、ソースを修正せずに簡単にメソッド名付きのデバッグログを挿入できます。このアクションは、クラスとメソッド名を出力する "systrace" テンプレートを使用して条件付きブレークポイントとして作成され、中断しません。通常のブレークポイントとして中断したい場合は、条件部で明示的に true を返してください。

スクリーンショット 2017-05-14 15.42.07(3).png

デバッグ実行時の変数に格納されないメソッド戻り値の表示

メソッドの結果が変数に格納されていなくても、デフォルトで直前のメソッドの結果が変数ビューに表示されるようになりました。これは、設定 > Java > デバッグ > ステップ操作後のメソッド結果を表示する を OFF にすることで無効にできます。(ON だと VM により遅くなる可能性あり)

スクリーンショット 2017-05-11 23.52.56.png

コンソールに JUnit スタックトレースを表示

JUnit ビューに追加されたボタンからコンソールにスタックトレースを表示できるようになりました。コンソールでは、スタックトレースの一部をコピーしたり、ハイパーリンクでクラスにジャンプしたりできます。

スクリーンショット 2017-05-11 21.38.57(3).png

インポートの再編成ダイアログでスキップ

今まで複数の未解決のインポートがある場合、すべて確定する必要がありましたが、スキップできるようになりました。スキップされた型は import に追加されません。

スクリーンショット 2017-05-11 21.53.30.png

クイック・アウトラインでの継承されたメンバー表示切替

エディター上で Ctrl+O (Cmd+O) でクイック・アウトラインを表示できますが、さらに続けて同じショートカットを押すことで、継承されたメンバーの表示/非表示が切り替えれるようになりました。右上の ▼ > フィルターからダイアログを開くと、さらに多くの表示オプションを設定することができます。

スクリーンショット 2017-05-13 20.03.26.png

推奨されないフィールドやメソッドを非表示にする

各ビューの ▽ メニューから推奨されないメンバーを非表示にできるようになりました。対象ビュー:アウトライン、クイック・アウトライン、メンバー、パッケージ・エクスプローラー、プロジェクト・エクスプローラー

スクリーンショット 2017-05-29 20.39.49.png

PHP プラグイン PDT 5.0

ビルトイン PHP HTTP サーバのサポート

PHP ビルトインの Web サーバーがサーバー・ビューから起動・停止できるようになりました。テストやちょっとしたデモ用途などで Apache などを起動しなくても利用でき、XDebug がインストールされていればデバッガーも使用可能です。

スクリーンショット 2017-06-27 20.25.54(2).png

全般

  • PHPUnit のサポート
  • 設定の構造の再編成
  • 新しいクラス/インターフェースの作成ウィザード
  • getter/setter 生成ウィザード

エディター

  • PSR-2 フォーマッタがデフォルトに
  • use を編成するための新しい仕組み
  • コード補完ダイアログのテーマ対応
  • PHP 7 キーワード対応

デバッガ

  • Zend デバッガのプロファイリング・サポート

C/C++ プラグイン CDT 9.3

エディター

  • C++ 11 の auto 変数対応
  • クラステンプレートの定義から前方宣言へのナビゲーションをサポート
  • アセンブリファイルの宣言のオープンをサポート

コンテンツアシスト

  • アドレス補完のサポート
  • 非アクティブなコードのコンテンツアシスト改善
  • 拡張子のないファイルのインクルード
  • 強化されたパラメータヒント
  • 初期化構文によるコンストラクタ補完

定数

  • const キーワードの配置スタイル設定
  • コード生成時の const サポート
  • ファイル内の const をそろえる

コード解析・GCC クイックフィックス

  • セミコロンなし
  • 誤ったメンバー指定 (gcc 6 以上)
  • . を -> に置換
  • -> を . に置換
  • -fdiagnostics-parseable-fixits のサポート

パーサー

  • 正確な結合分解能
  • 機能テスト用の CDT バージョン番号の公開
  • C++ 14 言語サポート

ビルド

  • 事前ビルドタスクとパラレル make
  • ビルドコンソールの高速化
  • .SECONDARY を生成された Makefile から削除

デバッグ

  • デバッガコンソールページのツールバー拡張
  • ソースが見つからない場合の動作設定

その他

  • 起動グループ機能をプラットフォームに移動
  • Arduino サポート
  • マクロ参照周囲の定義を検索結果に表示
  • コメントの折りたたみ設定の改善

プラットフォーム 4.7

アプリケーションの二重起動抑止

二重起動防止のために、起動中の場合は終了して再起動します。この設定が OFF でも Shift を押しながら起動することで、有効にすることができます。

スクリーンショット 2017-05-11 21.12.56.png

複数のアプリケーションの起動を制御する起動グループ

CDT にあった機能がプラットフォームに移動され、直感的で使いやすいように修正されました。継続条件としてコンソール出力を正規表現で指定したり、すでに起動している場合は流用するなどのオプションが追加されています。

スクリーンショット 2017-05-14 17.19.00.png
スクリーンショット 2017-05-14 17.21.18.png

文字列貼り付け時のエスケープがデフォルトで ON に

文字列リテラルへテキストを貼り付けるときのエスケープがデフォルトで ON になりました。貼り付ける文字列にダブルクォートが含まれている場合は \ でエスケープされます。

スクリーンショット 2017-05-12 23.12.31.png

設定および比較エディターで左右の入れ替え

注意入れ替えると同期化ビューの表示がちょっと変 (2017.07.29 追記)
設定
スクリーンショット 2017-05-11 22.18.41.png

比較エディター
スクリーンショット 2017-05-11 22.14.17(3).png

エディターの選択ダイアログで同じ拡張子のファイルすべてに適用

ファイル右クリック > 次で開く > その他 で開くエディターの選択ダイアログに「すべての '*.xxx' ファイルで使用する」チェックボックスが追加され、簡単に拡張子単位でエディターを設定できるようになりました。設定は既存からある「一般 > エディター > ファイルの関連付け」、「一般 > コンテンツ・タイプ」に保存されます。

スクリーンショット 2017-05-11 22.30.43.png

'その他のプロジェクト' ワーキングセットの非表示

複数のプロジェクトをワーキングセットに分けて、「ワーキング・セットの選択...」から表示/非表示を選択できますが、ワーキングセットに格納していないプロジェクトが表示される "その他のプロジェクト" は非表示にできませんでした。今回からは、その他の表示/非表示を切り替えるメニューが追加されました。

スクリーンショット 2017-05-12 22.26.21(3).png

フォームベースの UI がフラットに

フォームベースの UI がフラットになりました。これは Clean Sheet というプラグインの影響を受けています。

スクリーンショット 2017-05-13 16.50.38.png

エディター切り替えの改善

Ctrl+E (Cmd+E) で開いているエディターをワイルドカードでフィルタリングして選択できます。リストでは、さらに Ctrl+E (Cmd+E) または上下キーを押すことで移動できます。

スクリーンショット 2017-05-13 19.25.18.png

ステータスバーの表示/非表示

下部ステータスバーの表示/非表示を切り替えれるようになりました。クイック・アクセスからは「ステータスバーの切り替え」で検索できます。

スクリーンショット 2017-05-14 10.50.48(3).png

その他

  • ダイアログのの OK ラベルなどが、アクションを明確に示すラベルに変更
  • 画像が直接、内部 Web ブラウザーで開かれるように
  • ブレークポイントビューが名前、作成時刻でソート可能に
  • クイックアクセスが空白区切りの複数文字列で検索可能に
  • クイックアクセスでワイルドカード * と ? が使用できるように
  • 問題、ブックマーク、タスクビューのフィルター設定ダイアログが簡略化
  • 問題、タスクビューを右クリックで詳細をコピー可能に