/iam

This application is IAM system for membership console.

Primary LanguageJavaMIT LicenseMIT

IAM

CI Build version

概要

本プロジェクトは Membership Console の IAM 機能を提供します。

開発

開発環境

  • 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:  テスト用データベース

デフォルトで使用されるポート番号は8080です。

# 1. run .jar file
$ java -jar iam-<version>.jar

# 2. run on dev environment
$ ./gradlew bootRun

DB マイグレーションとコード生成

DB マイグレーションと ORM には下記ツールを利用しています。

  • Flyway: DB マイグレーションツール
  • MyBatis: ORM フレームワーク

DB マイグレーション

flywayMigrateタスクで DB マイグレーションを実行できます。

$ ./gradlew flywayMigrate

Flyway はマイグレーションファイルのチェックサムをflyway_schema_historyテーブルに保存することで、過去のマイグレーションファイルが書き換えられることを防いでいます。

しかしながら、開発中は書き換えたくなることもあるでしょう。その場合は、下記コマンドで歴史を消すことが可能です。クリーンが完了したら、再度マイグレーションコマンドを実行してください。

$ ./gradlew flywayClean

MyBatis でコード生成

下記コマンドで、DB から Entity ファイルを生成できます。

$ ./gradlew mbGenerate

依存関係のアップデート

Gradle Versions Pluginを使って、outdated な依存関係をアップデートします。

下記コマンドの実行後、出力されたレポートに従ってbuild.gradleに記載されたバージョンを書き換えてください。

$ ./gradlew dependencyUpdates -Drevision=release