.load
.load [-o] [-e] [-v] [-j] [<relative_path>/]<filename>
.load -r|-p <registername>
.load -s `<command name>`
.load コマンドは XML ファイルからプロジェクトをロードし、ロードしたプロジェクトの ステップを現行プロジェクトに追加します。 ロードしたプロジェクト のステップは、.load コマンドを実行したステップの次 に追加され、これによ り、プロジェクトは実行時に 動的にステップを作成およびロードすることができます。オプションを使用し、.load コマンドで、 レジスターまたはコマンドの出力からデータを引き出すことができます。
.load コマンド用の XML ファイルを作成する場合は、既存プロジェ クトのエクスポート・ファイルを雛形として使用することをお勧めします。システム内で プロジェクトを作成してから、エクスポートして .load コマンドで使用することもできます。 このトピックには、サンプル XML コードが含まれます。
.load コマンドでロードされたステップは、インライン化または チェーニングされたプロジェクトへの参照を含むことができます。デフォルトでは、システムは XML ファイル内にあるインライン化されたプロジェクトの定義を検索し、そのステップをロードします。インライン化されたプロジェクト定義をデータベースから取得する方法については、このトピックで後述する -e オプションを参照してください。 成功チェーンまたは失敗チェーンのプロジェクトの場合、システムは常に、 データベースでプロジェクト定義を検索します。
XML ファイル内の複数プロジェクト
システムは インライン化されたプロジェクトをそれらの呼び出しプロジェクトとともにエクスポートするため、XML ファイルには いくつかのプロジェクトが含まれる場合があります。 .load コマンドは、ファイル内で primary とラベルが付けられたプロジェクトを実行します。このプロジェクトには、 <project> エレメント上に属性 primary="1" があります。
コマンド・オプションおよびパラメーター
.load ../../project.xml
サーバー・ディレクトリー (そのプロジェクトとジョブ・ディレクトリーが含まれるディレクトリー) から ファイル project.xml をロードし、ステップのパス・プロパティーが "/" (デフォルト) であると想定します。
- -r または -p
- これらのオプションにより、システムはレジスターから
ステップをロードします。
これらのオプションを指定してコマンド行を使用します。
-r オプションは通常のレジスターからステップをロードしますが、-p オプションはプロジェクト・レジスターから ステップをロードします。プロジェクトの以前のステップでレジスターに日付を作成してから、 このコマンドを使用して、そのレジスターからステップをロードすることができます。.load -r|-p <registername>
- -s
- このオプションにより、システムはコマンドを実行し、
そのコマンドの出力をロード対象のデータとして使用します。
次のコマンド行を使用します。
.load -s `<command name>`
- -e
- -e オプションが 設定されている場合、システムは、ロードされた XML ファイルからではなく、データベースから インライン化されたプロジェクトを取得します。これは値 chainID を、 データベース内のプロジェクト ID への参照として処理します。これにより、XML ファイルは、 XML ファイル内のインライン化されたプロジェクトではなく、最新バージョンのインライン化されたプロジェクトを参照したり、 XML ファイルに含まれないプロジェクトを参照したり することができます。
- -o
- -o オプションを使用し、XML ファイル内でインライン化されたプロジェクトを使用不可にします。この オプションが使用される場合、システムはメイン・プロジェクト内にあるインライン化されたプロジェクトを 無視します。インライン化されたプロジェクトへの参照が含まれるステップは、コマンドは実行しますが、 インラインは無視します。
- -j
- -j オプションは、XML ファイル内の最後のステップ・セットがスレッド化され、.load コマンドに続くステップもスレッド化される場合に使用します。-j オプションは、最後にスレッド化されたステップを結合ステップに変えます。それ以外の場合、スレッド化されたステップは、.load コマンドの後の、スレッド化されたステップ・ブロックの一部になります。
- -v
- 表示用にディスプレイ端末 (STDOUT) にロードされる XML ファイルの内容を送信します。
サンプル XML
以下の例に、 .load コマンドとともに使用する XML ファイルを示します。XML は、 HelloWorldPlusInline というプロジェクトをエクスポートすることによって作成されます。
- XML には 2 つの <project> エレメントが含まれます。
- XML の最初のプロジェクトは基本プロジェクトで、属性 name="HelloWorldPlusInline" および primary="1" を持ちます。
- XML の 2 番目のプロジェクトは Sleepytime と呼ばれ、それが基本ではないことを示す属性 primary="0" を 持ちます。
- HelloWorldPlusInline の最初のステップは、エコー・コマンドと
chainID 属性が含まれる EchoHelloWorld というステップです。chainID 属性には
値 2 が含まれ、システムは ID 2 を持つプロジェクト (Sleepytime プロジェクト) をインライン化する
ことを示します。注: ステップ属性 inline は無視してください。 これは推奨されない属性で、使用されなくなりました。すべてのステップには、値 N を持つこの属性が あります。ステップにインライン化されたプロジェクトがあるかどうかを判別する場合、 属性 chainID を検索してください。値 chainID は、 プロジェクトの ID を表します。デフォルトでは、システムは XML ファイル内で インライン化されたプロジェクトを検索しますが、.load コマンドで -e オプションを使用する場合、 システムはその値をデータベース内でプロジェクト ID として扱います。これにより、 インライン化されたプロジェクトを内部に組み込むことなく、独自の .load ファイルを 作成できます。注: .load を、Build Forge バージョン 7.0.x 以前で生成された XML ファイルとともに使用することはサポートされておらず、古い構文では UUID ではなく名前でオブジェクトを参照するため、適切に機能しません。
- 各プロジェクトには id 属性があります。この ID 値は、
データベース内のプロジェクトの ID と同じです。プロジェクト ID のリストは、
インストール・ディレクトリーから以下のコマンドを実行することによって取得できます。
bfexport -l
- commandStore 属性には、特定の文字が XML 形式でエスケープされた状態で、<command> エレメントの内容のコピーが含まれています。例えば、 <command> 内には "、'、&、<、>、または改行などが含まれていることがあります。 commandStore 内では、これらの文字はそれぞれ、 "、'、&、<、>、および と表現されます。
<?xml version="1.0" encoding="UTF-8"?>
<buildforge schema="7.115014" comment="">
<project access="6" active="Y" name="HelloWorldPlusInline" primary="1"
selectorId="Choose_local" maxthread="0" increment="Y" tagsync="0"
buildclass="Production" sticky="N" envId="0" tag="BUILD_$B" id="19" exclusive="0">
<tagvar autoincrement="Y" name="B" id="1">2</tagvar>
<step absolute="N" failwait="N" selectorId="" dir="/" broadcast="N"
timeout="300" id="1" passwait="N" inline="N" threadable="N" chainId="2"
access="6" active="Y" passnotify="0" description="EchoHelloWorld" onfail=" "
failnotify="0" envId="0" commandStore="echo Hello World">
<command>echo Hello World</command>
</step>
<step absolute="N" failwait="N" selectorId="" dir="/" broadcast="N"
timeout="300" id="2" passwait="N" inline="N" threadable="N" access="6"
active="Y" passnotify="0" description="export proj to build and server folders"
onfail=" " failnotify="0" envId="0"
commandStore=".export $BF_PROJECTNAME_PHYS.xml copy /Y $BF_PROJECTNAME_PHYS.xml ..¥..">
<command>.export $BF_PROJECTNAME_PHYS.xml
copy /Y $BF_PROJECTNAME_PHYS.xml ..¥..</command>
</step>
</project>
<project access="6" active="Y" name="Sleepytime" primary="0"
selectorId="Choose_local" maxthread="0" increment="Y" tagsync="0"
buildclass="Production" sticky="N" envId="0" tag="SLEEP_$B" id="2" exclusive="0">
<tagvar autoincrement="Y" name="B" id="1">21</tagvar>
<step absolute="N" failwait="N" selectorId="" dir="/" broadcast="N"
timeout="300" id="1" passwait="N" inline="N" threadable="N" access="6"
active="Y" passnotify="0" description="Sleep, perchance to dream" onfail=" "
failnotify="0" envId="0" commandStore=".sleep 0">
<command>.sleep 0</command>
</step>
</project>
<class maxdays="0" access="1" entranceprojectId="1" name="Production" keepfiles="B"
deletechangedata="N" purgeprojectId="2" exitProjectId="5" candidates="AnyBuild "
maxbuilds="0"></class>
<selector operator="" required="" access="6" value="" name="Choose_local"
selectorId="" property=""></selector>
</buildforge>