本プロジェクトは Membership Console の通知基盤です。
- Java OpenJDK 17
- Spring Boot 3.0
- MySQL 8.0
- docker-compose
ビルドに成功すると、app/build/libs
直下に.jar
ファイルが生成されます。
$ ./gradlew bootJar
まず、Docker から MySQL を起動します。
$ docker compose up -d
# 3306 db-local: ローカル用データベース
# 3307 db-test: テスト用データベース
デフォルトで使用されるポート番号は8081
です。-Dserver.port=XXXX
オプションを付けることでポート番号を変更できます。
# 1. run .jar file
# -Dspring.profiles.activeを指定しない場合はlocalになる
$ java -jar reminder-<version>.jar # -Dspring.profiles.active=<environment>
# 2. run on dev environment
$ ./gradlew bootRun
DB マイグレーションと ORM には下記ツールを利用しています。
- Flyway: DB マイグレーションツール
- MyBatis: ORM フレームワーク
flywayMigrate
タスクで DB マイグレーションを実行できます。
$ ./gradlew flywayMigrate
Flyway はマイグレーションファイルのチェックサムをflyway_schema_history
テーブルに保存することで、過去のマイグレーションファイルが書き換えられることを防いでいます。
しかしながら、開発中は書き換えたくなることもあるでしょう。その場合は、下記コマンドで歴史を消すことが可能です。クリーンが完了したら、再度マイグレーションコマンドを実行してください。
$ ./gradlew flywayClean
下記コマンドで、DB から Entity ファイルを生成できます。
$ ./gradlew mbGenerate
Gradle Versions Pluginを使って、outdated な依存関係をアップデートします。
下記コマンドの実行後、出力されたレポートに従ってbuild.gradleに記載されたバージョンを書き換えてください。
$ ./gradlew dependencyUpdates -Drevision=release