SAFluteでビルドデプロイするやり方

SAFluteにおけるビルドデプロイのやり方です。

Mavenでwarファイル作成

installとpackageの順序

継承や依存などの Maven の構成を把握していることを前提として...

依存の順序通りに maven を実行していきます。

  1. saflute で mvn -e clean install
  2. xxx-base で mvn -e clean install
  3. xxx-common で mvn -e clean install (profileの切り替えが必要なら -P オプション)
  4. xxx-dockside で mvn -e clean package (profileの切り替えが必要なら -P オプション)

環境ごとに切り替えデプロイ

環境切り替え設定などの構成を把握していることを前提として...

環境ごとに設定を切り替え場合は、commonとwebプロジェクトにて、profileを指定します。

e.g. 結合環境(integration)用のcommonプロジェクトをビルド @Command
mvn -e clean install -P integration
e.g. 結合環境(integration)用のwebプロジェクトをビルド @Command
mvn -e clean package -P integration

すると、warファイルの中に含まれる xxx_env.properties などが、指定された環境のものになっています。 (一方で、環境情報をwarに含めたくない場合は、propertiesの扱い方を工夫する必要があるでしょう)

環境ごとに切り替える設定ファイルの環境に適した修正が終わっていることが前提です。

新しいデプロイ環境をつくる

新しいデプロイ環境 (profile) をつくる場合は、いくつかの設定ファイルを修正していく必要があります。

まずは、Mavenの構成、および、環境切り替えの構成を把握していることを前提として...

例えば、sea という名前の環境を新たに作るとします。

1. pom.xml にて profile を追加

common, webプロジェクトの pom.xml の profile で新しい環境の設定を追加します。

※profileの設定場所を変更している場合は、そちらを修正

2. src/sea/resources を追加

common, webプロジェクトの src/sea/resources フォルダを作成します。

3. resources に環境依存propertiesを追加

独自に作ったばかりの src/なんとか/resources フォルダに xxx_env.properties を追加します。別の環境の xxx_env.properties をコピーして作るとよいです。 が、修正漏れだけには厳重注意しましょう。

プロパティ値だけでなく、コメントの中も新しい環境に合わせましょう。(環境名とか書いてあるかも)

4. propertiesHtmlMap にて env を追加

documentDefinitionMap.dfprop の propertiesHtmlMap のそれぞれの environmentMap にて、新しい環境の設定を追加します。(PropertiesHTMLで比較ができるようにするため)

e.g. propertiesHtmlMap の environmentMap に新しい環境を追加 @Command
        ; Sea_ConfigProperties = map:{
            ...
            ; environmentMap = map:{
                ; integration = $$baseDir$$/integration/resources
                ; production = $$baseDir$$/production/resources
                ; sea = $$baseDir$$/sea/resources
            }
            ...
        }

Docタスク (manageの22番) を叩いて、PropertiesHTML に新しい環境の情報が追加されていることを確認しましょう。

5. resources にその他環境依存のファイルを追加

もし、アプリで独自の環境依存の設定ファイルを作っていれば、それを resources に作成します。

6. ReplaceSchemaの環境設定を追加

これは、もし新しい環境のDBを ReplaceSchema 管理するときだけです。

ReplaceSchemaの環境切り替えの構成について把握していることを前提として...

  1. DBFluteクライアント/dfprop/sea フォルダを作成
  2. そこに、databaseInfoMap+.dfprop と replaceSchemaDefinitionMap+.dfprop を作成
  3. databaseInfoMap+.dfprop の設定
  4. replaceSchemaDefinitionMap+.dfprop の設定
  5. DBFluteクライアント/_sea_replace-schema.sh を作成 (環境変数をseaに)

_sea_replace-schema.sh を叩けば、sea環境用の設定で ReplaceSchema できるようになります。

新しいWebプロジェクトつくる

TODO jflute