概要
サブディレクトリによる階層構造がある場合で、Gradleのマルチプロジェクトを構築する方法になります。
下記、記事を参考にさせていただきました。
https://qiita.com/shiena/items/371fe817c8fb6be2bb1e
環境
- Java 8
- Gradle 5.6
- IntelliJ IDEA Ultimate 2019.2
- Windows10
コードサンプル
サンプルコードを Github にアップしています。
https://github.com/tYoshiyuki/java-gradle-multiproject
構成例
以下のような構成を想定しています。
プロジェクト名 | 説明 |
---|---|
master | ルートプロジェクト |
common/main-lib | 共通ライブラリ その1 |
common/sub-lib | 共通ライブラリ その2 |
app/api | 個別のアプリケーションサンプル |
app/web | 個別のアプリケーションサンプル |
app/batch | 個別のアプリケーションサンプル |
設定方法
root フォルダにてプロジェクト全体の Gradle 設定を行います。
includeFlat にて同階層にある common, app フォルダを指定します。
その後、include にてサブディレクトリのプロジェクトを指定します。
settings.gradle
rootProject.name = 'root'
includeFlat 'common', 'app'
include 'common:main-lib', 'common:sub-lib'
include 'app:web', 'app:api', 'app:batch'
各アプリケーションのプロジェクトから、共通ライブラリを参照します。
build.gradle
project('app:web') {
dependencies {
implementation project(':common:main-lib')
implementation project(':common:sub-lib')
}
}
IntelliJ IDEAよりGradleプロジェクトとしてインポートすると、各プロジェクトが認識されていることが確認できます。