MENU

特集 IBM i Project ExplorerとBobを使用したRPG開発 <Part5>IBM i Project Explorerを使用したローカル開発 ~⑦ プロジェクトのビルド

プロジェクトをビルドするための準備が整ったので、実行してみよう。

ビルドの実行 

ビルドを実行するには、プロジェクトの「Run Build」アクションをクリックする。

図表1 ビルドの実行アクション

ビルドが完了すると、下部ターミナルに次のログが出力された。

図表2 ビルド・コマンドのターミナル出力

今回は検証のためにターゲット・ライブラリー内を空にしているので、すべてのオブジェクトがビルドされた。

差分のビルド 

プロジェクトに変更を加えずに、もう一度プロジェクトのビルドを実行してみよう。

図表3 プロジェクトに修正を加えずに再ビルド

PC、デプロイ場所、ターゲット・ライブラリーの間に差分が発生していないため、ビルドされたオブジェクト0個となった。

今度はプログラムに修正を加えてプロジェクトのビルドを行い、修正したプログラムのみがビルドされるか確認してみよう。

QRPGSRCフォルダー配下のソース・ファイルcub010.rpgのテキスト用コメントを修正して保存する。

図表4 RPGソース・ファイルcub010.rpgの内容を修正して保存

プロジェクトのビルドを実行すると、修正を加えたcub010.rpgのみがビルドされた。

図表5 修正を加えたソース・ファイルcub010.rpgのみがビルドされた

依存関係にあるソースの再ビルド

QRPGSRCディレクトリーのRules.mkファイルには、RPGプログラムcub010.rpgが参照しているファイルを記述してある。

図表6 cub010.rpgが参照しているファイルの記述

ここでは、CUB010.PGMが参照しているプリンター・ファイルCUB010P.FILEのソース・ファイルであるcub010p.prtfに変更を加えた際に、cub010.rpgが再ビルドされるかを確認する。

次のように、QPRTFSRCディレクトリー配下のcub010p.prtfのテキスト用コメントを修正して保存する。

図表7 PRTFソース・ファイルcub010p.prtfの内容を変更して保存

プロジェクトのビルドを実行すると、修正を加えたcub010p.prtfだけでなく、依存関係にあるcub010.rpgもビルドされた。

図表8 PRTFを修正すると参照しているRPGも再ビルドされた

すでにオブジェクトが存在するライブラリーへの初回ビルド

Bobは、ターゲット・ライブラリー中のオブジェクトと、デプロイ場所のソース・ファイルのタイムスタンプを比較してビルド対象を決定している。このため、ターゲット・ライブラリーにオブジェクトが存在する場合でも、初回ビルド時はすべてのオブジェクトがビルド対象となってしまう。

これを回避するには、PASEのtouchコマンドを使用して、デプロイ場所にあるソース・ファイルのタイムスタンをオブジェクトのタイムスタンプより古い日付に書き換える必要がある。こうすることで、以後変更を行ったファイルだけがビルド対象となる。

以下は、QP2TERMでデプロイ場所に移動した後、「find . ?exec touch ?d “2000/1/1 0:00” {} +」コマンドを実行して、このディレクトリー内のすべてのファイルのタイムスタンプを2000年1月1日の午前0時に変更している。

図表9 touchコマンドによるファイルのタイムスタンプ変更

——————————

Better Object BuilderもしくはBobは、2025年10月にリリースされたIBM Project Bobとの混同・混乱を避けるため、2025年12月に「TOBi」(The Object Builder for IBM i)へと名称が変更されました。ただしここでの記事は従来どおり、Bobと明記していることをご了承ください。

著者
佐藤 尚氏

ソリューション・ラボ・ジャパン株式会社
第1サービス事業部 第3サービス部 第1グループ

AS/400ユーザーの情報システム部門を経て、2006年にソリューション・ラボ・横浜(現ソリューション・ラボ・ジャパン)に入社。主にIBM iを中心に他のプラットフォームとの連携を行うシステムの設計・開発を行う。近年はシステム開発の傍ら、IBM i技術者向け研修サービスの講師を担当している。

 

[i Magazine・IS magazine]

新着