コンテンツにスキップ

Spring BootからAndroidへ移って、Gradleの依存関係でつまずいた話

Spring BootでKotlinを書いてきたので、Android開発でも言語の知識はそのまま活かせると思っていました。実際に開発へ加わると、Kotlinの文法より先に、Gradleの設定で戸惑いました。

特に困ったのが、別のモジュールにあるクラスを使おうとしてimportを書いても、クラスが認識されないことです。同じリポジトリにソースコードがあるのに、なぜ参照できないのか。コードの書き方だけでなく、ビルド構成も確かめる必要がありました。

Spring Bootに頼り切ったKotlinエンジニアが、AndroidのGradle設定でつまずいた話 では、この経験をもとに、SpringのBeanとGradleの依存関係を整理しました。

  • Spring BootでBeanを使う場合と、Gradleでモジュール間の依存を宣言する場合の違い
  • settings.gradle.ktsでのモジュール登録と、利用する側に書くimplementation
  • libs.versions.tomlのVersion Catalogにライブラリを定義する方法
  • import先を解決できないときに確認する、依存・パッケージ・可視性・ソースセット
  • implementationとapi、プラグインとライブラリの使い分け

Spring Bootでも、別のGradleモジュールにあるクラスを利用するには、利用側から依存を宣言します。一方、Springを使うアプリケーションでは、参照できるクラスをBeanとして管理し、コンストラクタへ渡す仕組みもあります。今回の戸惑いを通じて、この二つを分けて理解する必要があると気づきました。

記事のコード例は説明用のサンプルですが、Gradleのどのファイルを見ればよいか迷ったときの確認手順としてまとめています。Spring BootからAndroidへ移る方や、Androidのマルチモジュール構成を読み始めた方の参考になればうれしいです。

このような開発中のつまずきや、理解し直したことは、新しく設けた「開発ノート」にまとめていく予定です。