.load [-o] [-e] [-v] [-j] [<relative_path>/]<filename>
.load -r|-p <registername>
.load -s `<command name>`
在執行 .load 指令的步驟之後,.load 指令會從 XML 檔載入專案,並將載入專案的步驟新增至現行專案,讓專案能夠在執行時期動態建立及載入步驟。您可以使用選項來讓 .load 指令從暫存器或指令的輸出提取資料。
如果要撰寫 .load 指令的 XML 檔,請先使用現有專案的匯出檔案,以提供您適當的基本結構。您也可以在系統中建立專案,然後將其匯出,以用於 .load 指令。這個主題包含範例 XML 程式碼。
.load 指令所載入的步驟可包含列入或鏈結專案的參照。依預設,系統會在 XML 檔中尋找列入專案的定義,並載入其步驟;請參閱本主題後面的 -e 選項,以瞭解如何讓系統從資料庫取得列入專案定義。若為通過鏈結專案或失敗鏈結專案,系統一律會在資料庫中尋找專案定義。
因為系統會將列入專案與其呼叫端專案一起匯出,所以 XML 檔可能會包含數個專案。.load 指令會執行檔案中標示為主要的專案。這個專案的 <project> 元素上有 primary="1" 屬性。
.load ../../project.xml
會從伺服器目錄(包含專案及工作目錄的目錄)載入 project.xml 檔,並假設該步驟的路徑內容為 "/"(預設值)。
.load -r|-p <registername>
-r 選項會從原始暫存器載入步驟,而 -p 選項會從專案暫存器載入步驟。您可以在專案的前幾個步驟中,於暫存器內建置資料,然後使用此指令從暫存器載入步驟。.load -s `<command name>`
下列範例顯示要搭配 .load 指令來使用的 XML 檔。該 XML 是藉由匯出一個名為 HelloWorldPlusInline 的專案而建立的。
bfexport -l
<?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>