以下の内容はhttps://tech.uzabase.com/entry/2026/04/13/105551より取得しました。


Kotlin 2.3 × Java 25 への刷新:Maven 構成の見直しで「最新 LTS」の恩恵を最大化する

こんにちは。先日、プロジェクトのビルド基盤を最新の Java 25 (LTS)Kotlin 2.3 へと一気に引き上げ、あわせて pom.xml の大掃除を行いました。

最新の言語機能を取り入れるだけでなく、マルチモジュール構成における「設定の重複」を排除したことで、保守性が格段に向上しました。その詳細を共有します。

1. なぜやったのか(背景)

Java 25 という新たな LTS(長期サポート)版が登場したことを受け、プロジェクトのランタイムを最新化することを決断しました。

これまでの課題:

  • 設定の散乱: 各モジュールの pom.xml に似たようなコンパイラ設定が重複し、変更が漏れやすい。
  • ビルド速度: プロジェクトが大きくなるにつれ、フルビルドの待ち時間が開発のボトルネックになっていた。
  • 最新機能への追従: Java 25 の最新の最適化や、Kotlin 2.3 の新機能をフルに活用したい。

2. Java 25 と Kotlin の足並みを揃える

単にバージョンを上げるだけでなく、Java と Kotlin が矛盾なく動作するよう、ルート POM の <properties> で一元管理を行いました。

<properties>
    <java.version>25</java.version>
    <kotlin.version>2.3.10</kotlin.version>
    <kotlin.compiler.languageVersion>2.3</kotlin.compiler.languageVersion>
    <kotlin.compiler.apiVersion>2.3</kotlin.compiler.apiVersion>
    <kotlin.compiler.jvmTarget>25</kotlin.compiler.jvmTarget>
    <kotlin.compiler.incremental>true</kotlin.compiler.incremental>
</properties>

プロパティ設定の狙い

これらの設定を「きちんと」定義することには、以下の明確なメリットがあります。

  • java.version & jvmTarget (25):

    プロジェクトの「出口(バイトコード)」を Java 25 に固定します。これにより、Java 25 固有の最新の JIT 最適化やメモリ管理の恩恵を Kotlin 側からも最大限に引き出せます。

  • languageVersion & apiVersion (2.3):

    Kotlin 2.3 の新しい構文や標準ライブラリの仕様を明示的に指定します。コンパイラをアップデートしても、意図しない文法混在を防ぎ、コードの品質を一定に保ちます。

  • incremental (true):

    増分コンパイルを有効化。コードの一部を修正した際の再ビルド時間を劇的に短縮し、開発のサイクルを高速化します。

3. サブモジュールの軽量化:Root POM への集約

今回の修正で最も「見た目」が変わったのが、各サブモジュールの pom.xml です。チームではClean Architectureを意識して、レイヤリングとして(domain, port, rest など)それぞれをモジュールとして切り出し、マルチモジュールの構成を採用しています。

これまで各所で定義していた <repositories> や重複したプロパティ、ビルドプラグインの設定を Root POM へ移管しました。その結果、子モジュールの pom.xml は「そのモジュール特有の依存関係」だけを記述するシンプルかつ美しい形になりました。

4. エコシステムのアップデート

言語基盤の刷新に合わせ、周辺ライブラリも最新の互換バージョンへと引き上げました。

  • Ktor 3.4.0: 最新ランタイムでのパフォーマンス向上
  • Exposed 0.61.0: 型安全な DB アクセスの安定化
  • JUnit 6 / MockK 1.14: 最新のテストフレームワークによる堅牢な検証環境

特に Java 25 のような新しい LTS への移行期には、これらのライブラリ側の対応状況も重要ですが、今回の整理で依存関係の管理がプロパティ 1 つで制御可能になったため、今後の追従も容易になります。

5. まとめ

Java 25 へのアップデートは、単なるバージョンアップ以上の価値をもたらしてくれました。

  1. 最新 LTS の安心感とパフォーマンス
  2. Kotlin 2.3 のモダンな機能
  3. Maven 設定の集約による「管理のしやすさ」

「最新を追い続ける」ことは大変ですが、このようにビルド基盤を整理しておくことで、そのコストを最小限に抑えることができます。ぜひ、皆さんのプロジェクトでも pom.xml の大掃除を検討してみてください!


今回の主なアップデート・ログ

項目 バージョン
JDK 25 (LTS)
Kotlin 2.3.10
Ktor 3.4.0
Testing JUnit 6.0.3 / MockK 1.14.9
Exposed 0.61.0



以上の内容はhttps://tech.uzabase.com/entry/2026/04/13/105551より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14