LastaFluteのプロジェクト構成
LastaFluteを使ったアプリのプロジェクト構成やDBFluteのリソースについて。
とりあえずこんな感じです
架空のプロジェクトである、マルチプロジェクト構成のMaihamaプロジェクトの Dockside ドメイン (Webアプリ) を想定して説明します。これらは、LastaFlute の Example 実装として公開されています。
Maihamaプロジェクトのプロジェクト構成
e.g. Maihamaプロジェクトのプロジェクト構成 @Directory
maihama-base // ベースプロジェクト (親pomやドキュメントなど)
|-etc // 環境ファイル置き場
| |-license // ライセンスファイル置き場
| |-tools // ツール関連ファイル置き場
| | |-eclipse // Eclipse関連ファイル置き場
| | | |-code-formatter-profile.xml // フォーマッター設定 (最初の一人が設定)
| | | |-java-editor-templates.xml // 補完テンプレート設定 (みんなでimport)
| | |-mysql // MySQL関連ファイル置き場
|-modeling // ドキュメント置き場 (モデルやERDなど)
| |-maihamadb.erm // ERDのファイル (Maihama では ERMaster-b を利用)
| |-maihamadb.png // 出力したERDの画像 (SchemaHTMLから参照される)
|-...
|-pom.xml // プロジェクト全体の共通pom
maihama-common // commonプロジェクト (DBFluteも含む)
|-src/main/java // Maihamaプロジェクト共通クラス
|-src/main/resources // lasta_di.properties, dbflute.xml など
|-...
|-dbflute_maihamadb // いわずとしれたDBFluteクライアント
| |-dfprop // DBFluteプロパティ (設定ファイルたち)
| | |-syncdb // SchemaSyncCheck用のdfprop
| | |-lastafluteMap.dfprop // LastaのDBFlute設定、FreeGenの設定など
| | |-...
| |-playsql // ReplaceSchemaのリソース置き場 (SQLやエクセルデータなど)
| | |-data // ReplaceSchemaで登録するデータ置き場
| | | |-common // 環境問わず共通のデータ (つまりマスタデータ)
| | | |-ut // ut環境(デフォルト)におけるデータ (つまりテストデータ)
| | | | |-reversexls // LoadDataReverseの出力先 (循環テストデータ運用で重要)
| | |-replace-schema-00-system.sql // DBユーザーやDBスキーマを作成するためのDDL
| | |-replace-schema-10-basic.sql // 業務のDDL, ERMasterから自動生成される
| | |-take-finally.sql // データ登録後のDDL, データアサートSQL
| |-...
| |-manage.bat // 同じく重要、FreeGenを叩くためのバッチ (12番がFreeGen)
| |-manage.sh // それのシェル版 (Mac, Linux用)
| |-syncdb-replace-schema.bat // SchemaSyncCheck用のWindowsバッチ
| |-syncdb-replace-schema.sh // SchemaSyncCheck用のMac,Linuxシェル
| |-...
|-mydbflute // DBFluteモジュール
|-...
|-pom.xml // commonプロジェクトのpom (baseのpomを継承)
maihama-dockside // ドメインプロジェクト (Webアプリ)
|-src/main/java // Docksideドメインのクラス
|-src/main/resources // app.xml, lastaflute_director.xml など
|-...
|-pom.xml // docksideプロジェクトのpom (baseのpomを継承, common参照)
Maihamaプロジェクトのパッケージ構成
src/main/java や src/main/resources などのパッケージ構成は、別ページにて紹介しています。
シングルプロジェクトは単純に...
シングルプロジェクトの場合は、これらのプロジェクトが単純に結合して一つのものになっただけです。 Maven の継承関係とかもなく、とてもシンプルなのでここでは紹介しません。
Maven環境
Mavenの継承関係
Mavenの設定、pom.xml が継承関係になっています。(maihamaで例えます)
- maihama-base
- アプリのすべてのプロジェクトの親pom
- maihama-common
- maihama-baseを継承
- maihama-dockside
- maihama-baseを継承して、maihama-commonに依存
Mavenでのデプロイ
maihama-base が、子プロジェクトを aggregate しているので...
- maihama-base で mvn -e clean package
という手順で、warファイルを作ることができます。
環境ごとの設定
環境ごとに設定を切り替えるときは、lasta.env を使います。