以下が参考になりました。
- OracleのJava11移行ガイド https://docs.oracle.com/javase/jp/11/migrate/index.html#JSMIG-GUID-D7936F0D-08A9-411E-AD2F-E14A38DA56A7
- ヌーラボのJava8⇒Java9移行ブログ https://nulab.com/ja/blog/nulab/java9-migration/
- Java8⇒Java11移行について https://www.slideshare.net/YujiKubota/migration-guide-from-java-8-to-java-11-jjug
主なタスクは以下。
- リグレッションテストの実施
- 非機能テスト(パフォーマンステスト・ストレステスト・セキュリティテスト)の実施
- 削除されたAPIを使っているコードの書き換え
- ビルドスクリプト・ビルドツール・サーバ起動コマンドの変更
Java8まではjarファイルを作ってjavaコマンドで起動していたが、ビルド時にjlinkで実行可能ファイルを作成するよう修正する。起動時にjavaコマンドが不要になる。JDKモジュール化・バイトコード出力変更などの結果、ビルドツール・テストツールはJava11対応のものにアップデートが必要。
以下をやってれば工数削減できそう。
- 静的分析ツールjdeprscanで近いうちに廃止されるAPIを使っていないことを確認する
- なるべくテストを自動化する