Gradleでマルチモジュールのプロジェクトを作ってみる。
- Java17
- SpringBoot2.5
- Gradle6.7
プロジェクトの構成は1つのライブラリモジュールを1つのコマンドラインアプリケーション(batch)と2つのWebアプリケーション(webapp、webservice)で参照する以下の様な構成
gradle-multi-module-example
├ core # 他のモジュールで共用するモジュール
├ batch # batchアプリケーションのモジュール
├ webapp # Webアプリケーションのモジュール
└ webservice # Webサービスのモジュール
- core - webapp、webservice、batch から参照されるライブラリモジュール
- batch - SpringBoot を利用したコマンドラインアプリケーション
- webapp - SpringBoot を利用したのWebアプリケーション
- webservice - SpringBoot を利用したのWebアプリケーション
-
マイグレーションの実行
./gradlew clean flywayMigrate
-
マイグレーションのクリア
./gradlew clean flywayClean
-
マイグレーションの照会
./gradlew clean flywayInfo
-
Checkstyle の実行
./gradlew checkstyleMain
-
PMD の実行
./gradlew pmdMain
-
CPD の実行
./gradlew cpdCheck
-
SpotBugs の実行
./gradlew spotbugsMain
./gradlew dependencyUpdates -Drevision=release
- batch、webapp、webservice でそれぞれ異なるバージョンの core に依存させる場合どうやるのか?
- maven ならローカルもリモートも依存関係の記述の仕方が一緒だけど、gradle は書き方が異なる。
- 依存するSpringBootのバージョンを変更したいときはどうするのか?
- Creating a Multi Module Project
- Creating Multi-project Builds
- Authoring Multi-Project Builds
- Gradle で Spring Boot 2 のマルチプロジェクト
- Building a Multi-Module Spring Boot Application with Gradle
- spring-guides/gs-multi-module
- spring-projects/spring-framework
- jaredsburrows/android-gradle-java-multi-module-template
- project-aries/gradle-multi-project-example
- Multiple projectなgradleのprojectでcheckstyle pluginを有効にする
- codecov/example-gradle
- codecov/example-java
- Travis CI tutorial Java projects
- Maven/Gradleでdependencyのupdateをチェックする
- Flyway Gradle Plugin