JakartaEEで最適なデバッグ環境とは?
はじめに
JavaのWebアプリケーションの開発では、SpringFWの場合はシンプルです。
主流だったSTSがあったり、EclipseにSpringプラグインがバンドルされていたり、EclipseがTomcatをバンドルしていたり、そもそもSpringBootの場合はTomcatが内包されていたり。
一方、JakartaEEは大きな仕様変更で、商用の開発手法が定着していないように感じます。
ということで、少しJakartaEEの開発手法とりわけデバッグ環境が足元必要な状況なのでまとめてみます。
統合開発環境 (IDE):
やはり、まずはIDE。
- IntelliJ IDEA : Jakarta EEプロジェクトに非常に適しています。内蔵のデバッガ、リファクタリングツール、コード補完機能などが強力です。
- Eclipse IDE: Jakarta EEプロジェクトをサポートする多くのプラグインがあり、無料で利用できます。
- NetBeans: 直感的なユーザインタフェースと優れたデバッガ機能を提供します。
直球はIntelliJですかね。
Eclipseはプラグインなどデバッグ環境を作るまでに少しありそうです。
アプリケーションサーバ:
商用利用だとライセンス契約ありのアプリケーションサーバがあるかもしれないので、個人的に使うだけなら商用版のついになる非商用版を使うのがよさそう。
(WebLogicはJakartaEEに対応されるのか・・・)
- WildFly: 高速で柔軟なJava EEアプリケーションサーバです。IntelliJ IDEAやEclipseと簡単に統合できます。
- GlassFish: Jakarta EEのリファレンス実装であり、多くの開発者が使用しています。
- Payara Server: GlassFishをベースにした商用サポートのあるサーバです。
WildFlyのIDEとの統合はいいですね。
デバッグツールとプラグイン:
Remote Debugging: IDEからリモートデバッグを設定することで、アプリケーションサーバ上で実行中のアプリケーションをデバッグできます。ほとんどのIDEはこの機能をサポートしています。
Maven/Gradle Plugins: Jakarta EEプロジェクトのビルドとデプロイを簡単にするためのプラグインを利用します。これにより、ビルドプロセスの自動化が可能になります。
デバッグ環境の要はRemote Debuggingになりそう。
ユニットテストと統合テスト:
JUnit: ユニットテストに使用します。
Arquillian: Jakarta EEアプリケーションの統合テストをサポートします。異なるコンテナ上でテストを実行でき、実際の実行環境に近いテストが可能です。
ログとモニタリング:
単体テストあたりだと不要ですが、結合テスト環境以降のデバッグだと重要になってきますね。
ログフレームワーク: SLF4JやLogbackを使用して、アプリケーションのログを管理します。
監視ツール: VisualVMやJConsoleなどのツールを使用して、JVMのパフォーマンスをモニタリングします。
コンテナとオーケストレーション:
デバッグ環境の効率化なども考えて、コンテナも視野に入れておきたいところです。
Docker: アプリケーションサーバをDockerコンテナとして実行し、開発環境を容易に再現可能にします。
Kubernetes: 大規模なデプロイメント環境で使用されるオーケストレーションツールです。複数のコンテナを管理するのに役立ちます。
最後に
これらの要素を考えて、最適なデバッグ環境を構築することが大切と考えます。具体的なセットアップ方法は、上記のツールと方法を調査や検討して、効率的で効果的な開発環境を整えることが必要です。
私は以下のように進めよう。
- WildFly。EclipseでJakartaEE+WildFlyのプラグイン周りを調査、デバッグ環境構築
- 1が時間がかかりそうなら、Eclipseは止めてIntelliJ に舵を切る。