Eclipse
spring
OpenJDK
Pleiades
adoptopenjdk

Pleiades Java 11 標準搭載と Eclipse コードネーム終焉

様々な言語をサポートする統合開発環境 Eclipse の新しいリリースサイクルとなる年月リリースに合わせて、Pleiades All in One をリリースしました。Pleiades All in One は Windows および Mac 向けに、Eclipse 本体と Pleiades プラグインおよび各言語向けの便利なプラグインのセットです。Pleiades プラグインは Eclipse や Android Studio のような Java アプリケーションを AOP で動的に日本語化するための Java エージェントです。

Pleiades All in One ダウンロード
http://mergedoc.osdn.jp/
splash4.9.png

Pleiades All in One 変更点

今回の変更点の要約

  • Eclipse コードネーム\(^o^)/オワタ
  • Java 11 LTS 搭載・設定済みですぐに使用・検証可能
  • Spring 完全対応: Lombok, Thymeleaf プラグイン標準搭載

変更履歴

2018-09.20180925

・Java 11 以降の付属の JDK を AdoptOpenJDK に変更
・Eclipse リリース名体系の変更対応 (Photon のようなネーミングリリース廃止 → 2019-09)
・デフォルト Java パースペクティブにランナー・ビュー (起動、デバッグ・ランチャー) 追加
・Eclipse 標準では付属していない Java 11 対応プラグイン追加
・STS (Spring Tool Suite) プラグイン追加
・Thymeleaf プラグイン追加
・Lombok 追加 (eclipse.ini へ javaagent 設定追加)
・ANSI Escape in Console プラグイン追加
・CheckStyle プラグインを sourceforge のものから github のものに変更
・DBViewer プラグイン削除
・Moonrise UI Theme プラグイン削除
・Eclipse、各種プラグイン・ツールのバージョンアップ

Eclipse はローリングリリースへ

個人的にはコードネームが気に入っていたのですが、10 年以上続いていた Neon, Oxygen, Photon のようなアルファベット順コードネームベースでの年 1 回のリリースと、年 3 回の Oxygen 1, 2, 3 のようなバグ修正リリースが廃止され、年 4 回のローリングリリースに変更されました。

今まで:コードネームがリリース名

リリース名 本家リリース日 備考
4.4 Luna 2014/06/25
4.5 Mars 2015/06/24
4.6 Neon 2016/06/22
4.7 Oxygen 2017/06/28
4.8 Photon 2018/06/27 Photon 1 のリリースは無し

今後:年月がリリース名

リリース名 本家リリース日
2018-09 2018/09/19
2018-12 2018/12/19
2019-03 2019/03/20

新しいリリース名は、明確に年月を表す 2018-09, 2018-12 のようなドットを使用しない ISO 8601 形式となり、毎年 3, 6, 9, 12 月にリリースされます。コードネームベースのリリースは 2018年6月リリースの Photon が最後で、サービスリリースはリリースされません。2018-09 が新しい形式の最初のリリース名となります。変更後も 1 年あたりのリリース回数は同じですが、以下のようなことが目的とされています。

  • リリース名でリリース時期を認識 (例えば Juno という名前からは古いと認識できない)
  • 新機能の提供を迅速に行う
  • 単一のコードブランチで保守性アップ

Java 11 LTS 付属 (AdoptOpenJDK)

Pleiades All in One の Java Full Edition には、以前から付属している Java 6, 7, 8 に加え、AdoptOpenJDK の Java 11 (Hotspot) が新たに付属かつ設定済みです。AdoptOpenJDK は IBM、Microsoft、Azul Systems、GitHub、Slack などがスポンサーやサポーターとなっている Java 開発者コミュニティで、Pleiades All in One では Java 11 以降は AdoptOpenJDK を標準として搭載していく予定です。
jre.png
Oracle JDK とは以下のような違いがありますが、重要なポイントとしては、OpenJDK は唯一の Java API ソースコードであり、無償の AdoptOpenJDK、有償サポートがある Red Hat などの、すべての JDK ビルドは OpenJDK ソースからビルドされ、Oracle JDK も OpenJDK のビルドの 1 つであるということです。なお、OpenJDK の主要なコミッタは Oracle ですが、Red Hat や IBM などからもセキュリティパッチが継続して提供されており、AdoptOpenJDK (Hotspot および OpenJ9) の LTS ビルドはこれらが前提となっています。

JDK 名 ビルド者 ソース Java 11 サポート期間 LTS
Oracle JDK Oracle OpenJDK 有償 2018/9 ~ 2023/9 (5年間)
OpenJDK ビルド Oracle OpenJDK 無償 2018/9 ~ 2019/3 (半年間) 未定
AdoptOpenJDK AdoptOpenJDK OpenJDK 無償 2018/9 ~ 2022/9 (4年間)

今後、Java は半年ごとに 11, 12 ,13 というようにバージョンアップし、3 年ごとの 6 バージョンごとのリリースで LTS (長期サポート) が設定され、最初の LTS は 11 で、その次は 17 となります。それ以外の LTS でないバージョンは半年間でサポートされなくなります。
java-lts.png
これにより、各プロジェクトは、半年ごとの Java バージョンアップにアグレッシブに追随するか、Java 8 → 11 → 17 のように LTS を対象にバージョンアップする形になるかと思います。ただし、OpenJDK ビルドは LTS の提供が未定で、Oracle JDK は 11 以降有償のみ、AdoptOpenJDK は無償で LTS ビルドが提供されます。なお、Oracle JDK の Java 8 無償提供は 2019/1 で終了しますが、AdoptOpenJDK では、Java 11 への十分な移行期間を設けるために Java 8 は 2023/9 まで提供されます。

Eclipse の Java 11 対応

eclipse.org からダウンロードした Eclipse 2018-09 の場合、Java 11 プラグインをマーケットプレースからインストールする必要がありますが、Pleiades All in One の場合は最初からプラグイン組み込み済み、かつ Java Full Edition の場合は、Java 11 が付属し、インストール済みの JRE として Eclipse に設定済みのため、環境変数などの設定も不要で、バージョンを選択するだけで、すぐに Java 11 を使用することができます。

Java 11 var 対応

Pleiades All in One 32bit 版は継続

Java 9 以降、Java 自体の 32bit は廃止されましたが、Pleiades All in One のダウンロード比率を見ると現在でも、5 人中 1 人は 32bit を使用していることや、強い要望も多いため、配布を継続します。
pao_downloads.png
ただし、Eclipse 4.7 Oxygen 以降の 32bit 版 Java Full Edition に含まれる Java は 6, 7, 8 のみで 9 以降は 32bit 版が存在しないため、含まれていません。Pleiades All in One の古いリリースの配布を停止する予定はありませんが、今後の最新リリースでは、32bit 版を廃止する可能性があるため、64bit に移行することをおすすめします。

直近 10 年間の Pleiades 月別ダウンロード数推移
Pleiades のサイト全体では、だいたい毎日 2000 ダウンロードされています。
pleiades_downloads.png

Spring 対応

STS (Spring Tool Suite) 付属

STS が Pleiades All in One Java に標準で付属するようになりました。STS は Spring Boot などを使用したプロジェクトの開発をサポートするために、Spring 開発元から提供されている純正のツールです。現在対応しているのは Eclipse のみですが、次回リリースの Spring Tools 4 では Eclipse, VSCode, Atom の 3 つがサポートされる予定です。
関連記事: Eclipse 4.6 Neon 新機能 TOP10!と Spring Boot STS
STS Spring スターター・プロジェクト

Thymeleaf エディター付属

Spring MVC で JSP の代わりに推奨されている HTML テンプレートとして Thymeleaf がありますが、STS にエディター機能が含まれていないため、thymeleaf.org が提供している Eclipse プラグインを追加しました。プロジェクト右クリック > Thymeleaf > Thymeleaf ネーチャーの追加 で機能を有効にすることができます。
thymeleaf.jpeg

Lombok Eclipse 統合

Pleiades All in One Java に Lombok を追加しました。eclipse.ini に lombok.jar の設定を追加済みです。lombok.jar には標準で Eclipse 対応機能が組み込まれており、導入すると、アノテーションを定義するだけで private フィールドの setter/getter の記述を省略できるようになります。なお、使用する各プロジェクトには、Gradle や Maven の dependencies に Lombok の設定が必要です。Eclipse に導入された Lombok のバージョンは以下のように Eclipse のバージョンダイアログから確認することができます。

Lombok バージョン Eclipse ダイアログ

もし、Eclipse が使用している lombok.jar をバージョンアップしたい場合は、この jar ファイルを上書きする必要があります。

Lombok のバージョン一覧(Maven リポジトリ)
https://mvnrepository.com/artifact/org.projectlombok/lombok

Spring Boot でバージョンを指定しなかった場合に適用されるバージョン
https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-dependencies/pom.xml

コンソール文字色付けプラグイン追加

Eclipse のコンソールの文字色付けをサポートする ANSI Escape in Console プラグインを追加しました。Spring Boot デフォルトの Logback によるログ標準出力のような ANSI エスケープコード付きのパターンを持つログは文字が色付けされます。
ansi_console.png

ランナー・ビューをデフォルトで表示

ランナー・プラグインは以前から付属していましたが、Java パースペクティブにデフォルトで表示するようにしました。実行済みの Gradle や WTP サーバー、Boot アプリケーションの一覧が表示され、簡単に実行したり、実行構成やデバッグ構成に簡単にアクセスしたりすることができます。
runner.png