ビルド処理の詳細

最終更新日: 2022年7月9日
R8 | R9

ビルド対象モデルを指定する

モデル一覧の「ビルド」欄がチェックされているもが、ビルド対象モデルとなります。これを細かく指定することができます。

図1 ビルド対象モデル

仕様・制約

  • ビルド対象モデルを追加または削除したとき、最初のビルドは「フルビルド」をおこなってください。その後、ビルド対象モデルの変更がなければ差分ビルドをおこなってください。
  • あるモデルがビルド対象のとき、このモデルのビルドのために必要な他のモデルは自動的にすべてビルドの対象になります。そのため、ビルド対象モデルが一つだけであっても、実際には複数の関連するモデルがあわせてビルドされることはあります。
  • 関連するビルドを探す処理では、カスタマイズコードおよびスクリプト内部の解析は含まれません。このような場合は開発者が手動でビルド対象モデルを追加して、ビルドエラーが生じないようにしてください。
  • システムタブに含まれるモデル(システムモデル)は常にビルド対象です。これを取捨選択することはできません。
  • 内部的には、モデルごとに用意されたリポジトリキーmodel/@buildの値がtrueとなっているものがビルド対象です。

コマンドラインからビルドを行う

ここでは Windows OS での利用方法を説明します。Linux OS で操作される場合はコンソールをお使いください。

「スタートメニュー>プログラムとファイルの検索」欄に、"cmd" と入力して実行します。(図1,図2)

図2 スタートメニュー
図3 cmdを実行する

図3に示すような、コマンドプロンプトが表示されます。

図4 コマンドプロンプト

ワンポイント

スタートメニューを経由せず、直接「コマンドプロンプト」を実行することもできます。

コマンドプロンプトが起動したら、cd コマンドでカレントフォルダを移動します。移動先は Wagbyインストールフォルダ\misc です。(インストール先フォルダは適切に読み替えてください。)

図5 カレントフォルダを変える

misc フォルダに、build.xml を用意しています。misc フォルダで、次のように実行します。

lib/ant full
Wagby には Apache Ant というビルドツールが同梱されています。
図6 antから呼び出す(1)
図7 antから呼び出す(2)

「フルビルド」が行われます。最後に "BUILD SUCCESSFUL." と表示されれば、ビルドが終了となります。wagbyapp フォルダが再作成されています。

図9 ビルド終了

ワンポイント

この説明では Wagby に同梱している Ant を使いましたが、開発者が別途、インストール済みの Ant を使うこともできます。Ant のバージョンは 1.9 以上を利用してください。

ビルド時のメモリサイズを指定する

misc フォルダに用意されている (Apache Ant 用の) build.xml に次のように記述しています。プロジェクトの規模が大きい場合、mxmem によるメモリ指定を適切に変更してください。

  <target name="init">
...
    <property name="mxmem" value="4096m"/>
...
  </target>

現在のビルド対象モデルを表示する

lib/ant targetlist

出力は次のようになります。

> lib/ant targetlist
Buildfile: C:\Wagby-8.3.4\misc\build.xml
init:
targetlist:
...
     [java] model/@build Enabled Model
     [java] ModelId:customer     ModelName:顧客
     [java] ModelId:sales        ModelName:売上
     [java] model/@build Disabled Model
     [java] none
     [java] Enable/disablemodel system properties: -Denablemodel=customer,sales -Ddisablemodel=
BUILD SUCCESSFUL
Total time: 9 seconds

見出し文字列 "model/@build Enabled Model" に続いて、ビルド対象モデルが表示されます。
同じく見出し文字列 "model/@build Disabled Model" に続いて、ビルド対象ではないモデルが表示されます。

"none" という表記は、対象モデルがないことを示します。上の例では、ビルド対象ではないモデルは存在しない(つまり、すべてビルド対象である)ことを示しています。

ビルド対象モデルを指定する (1)

lib/ant full -Denablemodel=[モデルID、コンマ区切りで複数指定可] -Dbuild=false

例えば customer モデルだけをビルドする場合、次のように入力します。

> lib/ant full -Denablemodel=customer -Dbuild=false

このとき、内部では次のような動作となります。

  • -Ddisablemodel=* という指定が暗黙的に加わります。これによって、すべてのモデルのmodel/@buildの値をfalseに書き換えます。
  • あわせて、-Denablemodel に含まれるモデルのmodel/@buildの値だけをtrueにします。

ビルド処理を行わない

-Dbuild=false 指定により、model/@buildの値を書き換えるのみで、ビルド処理は行われません。この設定を省略すると、ビルド対象モデル変更後、すぐにフルビルドが行われます。

ビルド対象モデルを指定する (2)

上の方法は -Denablemodel で指定されたモデル以外は自動的にビルド対象外となっていました。そうではなく、現在の状態を維持したまま、ビルド対象モデルを追加する場合は次のようにします。

lib/ant full -Denablemodel=[モデルID、コンマ区切りで複数指定可] -Ddisablemodel= -Dbuild=false

例えば現在の状態を維持しながら customer モデルをビルド対象に加える合、次のように入力します。

> lib/ant full -Denablemodel=customer -Ddisablemodel= -Dbuild=false

-Ddisablemodel= という指定を明示することで、model/@buildの値をfalseに書き換える処理がスキップされます。

すべてのモデルをビルド対象にする

次のようにします。

> lib/ant full -Denablemodel=* -Ddisablemodel= -Dbuild=false

ビルド対象にしないモデルを指定する (1)

lib/ant full -Ddisablemodel=[モデルID、コンマ区切りで複数指定可]

例えば現在の状態から customer モデルだけをビルド対象から除く場合、次のように入力します。

> lib/ant full -Ddisablemodel=customer

このとき、内部では次のような動作となります。

  • -Denablemodel= という指定が暗黙的に加わります。これによって、指定されていないモデルのmodel/@buildは維持されます。
  • -Ddisablemodel に含まれるモデルのmodel/@buildの値だけをfalseにします。

ビルド対象にしないモデルを指定する (2)

上の方法は -Ddisablemodel で指定されたモデル以外で、ビルド対象となっていたモデルは維持されていました。そうではなく、-Ddisablemodel で指定したモデル以外は、すべてビルド対象とする場合は次のようにします。

lib/ant full -Ddisablemodel=[モデルID、コンマ区切りで複数指定可] -Denablemodel=*

例えば customer モデルだけをビルド対象から除き、それ以外のモデルをすべてビルド対象とする場合、次のように入力します。

> lib/ant full -Ddisablemodel=customer -Ddisablemodel=*

-Ddisablemodel= という指定を明示することで、model/@buildの値をfalseに書き換える処理がスキップされます。

仕様・制約

  • コマンドライン操作によるビルド処理はフルビルドのみ対応しています。差分ビルドを行うことはできません。(差分ビルドは、差分情報を Designer が管理しているため、Designer による操作が必要です。)
  • R9.0.xおよびR9.1.xでは Java 17 利用時はコマンドライン操作を行うことができません。この対応は R9.2 で修正されます。

リモートのDesignerのリポジトリを転送する

2台のPCにWagby(Designer)がインストールされているとします。このとき、開発機 A で起動している Designer のリポジトリを開発機 B に転送することができます。

開発機 B は Designer を起動する必要はありません。misc フォルダからコマンドラインで操作します。

開発機 A,B を用いた操作

コマンド 内容
lib/ant clone A の最新リポジトリを B に展開する標準的な方法。
backup, get のあと、(A に作成された) バックアップファイルを削除する。
lib/ant backup A の repository/trunk を zip 形式とする。
A の repository/branches にバックアップファイル (wrb_XX.zip) が作成される。
lib/ant get A にある repository/branches にある最新のバックアップファイルを転送し、B の repository/trunk に展開する。
lib/ant backup get A にある repository/trunk を zip 形式としたあと、このファイル(最新のバックアップファイル)を転送し、B の repository/trunk に展開する。

開発機 B のみを用いた操作

コマンド 内容
lib/ant createwrb B の repository/trunk を zip 形式とする。
B の repository/branches にバックアップファイル (wrb_XX.zip) が作成される。
lib/ant getzip B の repository/branches にある任意のバックアップファイルを B の repository/trunk に展開する。

各コマンドの詳細を説明します。

ant backup

WagbyDesigner が起動している開発機 A に対して、バックアップ操作を行います。

書式

lib/ant backup -DrepoServerHost=開発機Aのホスト名:ポート番号 -DrepoServerUsername=アカウント -DrepoServerPassword=パスワード -Dmemo=バックアップ時のメモ
-DrepoServerUsernameと-DrepoServerPasswordおよび-Dmemoは省略できます。repoServerUsernameは省略するとuserとなります。repoServerPasswordは省略するとwagbyとなります。-DrepoServerHostを省略することはできません。
メモとなる文字列に空白を含めることはできません。(空白があったとき、空白の前までの文字列が有効となります。)

開発機 A のホスト名が hostA で、標準のポート番号 8920 で起動している Wagby Designer の現在のリポジトリを zip 化する場合、次のようにします。

> lib/ant backup -DrepoServerHost=hostA:8920

ant createwrb

misc フォルダからコマンドラインでリポジトリのバックアップを取得します。ant backup と異なり、Designerは起動していない状態で操作できます。

書式

lib/ant createwrb -Dmemo=バックアップ時のメモ

現在の repository/trunk を zip 形式とし、repository/branches にバックアップファイル (wrb_XX.zip) を作成します。XXは実行時の日付時刻です。

lib/ant createwrb
lib/ant createwrb -Dmemo=初回リリース
メモとなる文字列に空白を含めることはできません。(空白があったとき、空白の前までの文字列が有効となります。)

ant get

書式

lib/ant get -DrepoServerHost=開発機Aのホスト名:ポート番号 -DrepoServerUsername=アカウント -DrepoServerPassword=パスワード
-DrepoServerUsernameと-DrepoServerPasswordは省略できます。repoServerUsernameは省略するとuserとなります。repoServerPasswordは省略するとwagbyとなります。-DrepoServerHostを省略することはできません。

開発機 A のホスト名が hostA で、標準のポート番号 8920 で起動している Wagby Designer からリポジトリを転送する場合、次のようにします。

> lib/ant get -DrepoServerHost=hostA:8920
開発機 A の Wagby Designer で管理しているリポジトリが旧バージョンの場合、転送のタイミングで移行処理が動作します。これは通常、Wagby Designer でリポジトリを読み込むと自動的に移行処理が動作するのと同じです。

その他のオプション

  • -DdownloadOnly=trueを指定すると、ダウンロードしたファイルをrepository/branchesにダウンロードする処理のみを行って、終了します。repository/trunkへの展開は行いません。
  • -DnoMigration=trueを指定すると、移行処理は行わず、転送したファイルをそのままrepository/trunkに展開します。

ant getzip

リモート/ローカルという関係ではなく、1つの(ローカルの) Wagby Designer で、branches にあるリポジトリファイルを trunk に展開します。言い換えると、Designerのバックアップリポジトリ読み込み操作をコマンドラインで行います。

書式

lib/ant getzip -Drepofile=../repository/branches/バックアップファイル.zip

コマンドライン操作で初期リポジトリに戻す場合、次のようにします。

> lib/ant getzip -Drepofile=../repository/branches/wrb_init.zip
※ R9.0.0〜R9.0.4までは wrb_init.zip ではなく wrb_20180130_0000001.zip を指定してください。

ant clone

リモートマシンの最新のリポジトリのバックアップと転送(取得)、リモートマシンで取得したバックアップの削除、ローカルマシンでのビルドを1回のコマンドで行います。

書式

lib/ant clone -DrepoServerHost=hostA:8920

その他のオプション

ant get と同じオプションを利用できます。

いずれのコマンドも "full" と組み合わせることができます。例えば lib/ant clone full とすることで、取得とフルビルドを一緒に行うことができます。

ビルドタブを非表示にする

Designer 画面の上部に用意された「ビルド」タブを非表示にすることができます。これにより、その Designer ではブラウザからの操作によるビルド処理が行えなくなります。

設定方法

  1. repository/trunk 直下の設定ファイル wdsettings.txt をテキストエディタで開きます。
  2. 次の行を増やします。
    build.disable=true
    
  3. "運用>リポジトリ"のリポジトリ再読み込みボタンを押下し、wdsettings.txt の再読み込みを行います。今回の設定内容が画面に反映されます。