2013-02-13 262 views
0

我的構建腳本創建構建選擇選項不工作

STP_13_00_00_00_RC01 
STPMON_13_00_00_00_RC01 
STPWEB_13_00_00_00_RC01 
STPPRODUCTS_13_00_00_00_RC01 

所以我想4個不同的名稱時,腳本創建名稱**STP_13_00_00_00_RC01**構建它應該創建文件夾,然後tar文件複製該文件夾中和之後,它應該多一個文件夾,而如果構建名稱以其他名稱STPMON,STPWEB.STPPRODUCTS開頭,那麼它應該只是創建文件夾並複製該文件夾中的tar文件所以我使用了下面的condidtion.But對於所有的構建它去進入其他條件或者構建是用STP創建的

</xsl:element> 
<xsl:element name="gzip"> 
    <xsl:attribute name="destfile" 
    >${archive.base}/${gbl.dist.label}.tar.gz</xsl:attribute> 
    <xsl:attribute name="src" 
    >${archive.base}/${gbl.dist.label}.tar</xsl:attribute> 
</xsl:element> 
<xsl:choose> 
    <xsl:when test="contains(node,'STP')"> 
    <xsl:element name="mkdir"> 
     <xsl:attribute name="dir" 
     >/mnt/projects/autoblds_dev_build/blds_dev_stp2build/${gbl.dist.label}</xsl:attribute> 
    </xsl:element> 
    <xsl:element name="copy"> 
     <xsl:attribute name="file">${archive.base}/${gbl.dist.label}.tar.gz</xsl:attribute> 
     <xsl:attribute name="todir" 
     >/mnt/projects/autoblds_dev_build/blds_dev_stp2build/${gbl.dist.label}/</xsl:attribute> 
     <xsl:attribute name="overwrite">no</xsl:attribute> 
    </xsl:element> 
    <xsl:element name="mkdir"> 
     <xsl:attribute name="dir" 
     >/mnt/projects/autoblds_dev_build/blds_dev_stp2build/${soa.release.version}</xsl:attribute> 
    </xsl:element> 
    </xsl:when> 
    <xsl:otherwise> 
    <xsl:element name="mkdir"> 
     <xsl:attribute name="dir" 
     >/mnt/projects/autoblds_dev_build/blds_dev_stp2build/${gbl.dist.label}_Test</xsl:attribute> 
    </xsl:element> 
    <xsl:element name="copy"> 
     <xsl:attribute name="file" 
     >${archive.base}/${gbl.dist.label}.tar.gz</xsl:attribute> 
     <xsl:attribute name="todir" 
     >/mnt/projects/autoblds_dev_build/blds_dev_stp2build/${gbl.dist.label}_Test/</xsl:attribute> 
     <xsl:attribute name="overwrite">no</xsl:attribute> 
    </xsl:element> 
    </xsl:otherwise> 
</xsl:choose> 
在條件

contains(node,'STP') 

這至少有一個問題,可能有兩個3210

回答

0

你的選擇指令分支。

你的問題的說明說,你要表現得名爲STP_13_00_00_00_RC01構建的一種方式,並針對不同的名稱開頭STPMONSTPWEB,或STPPRODUCTS的構建。但所有這些構建名稱都包含字符串'STP',因此您的測試條件無法區分它們。換句話說,你的代碼不會做你想做的事,因爲你沒有說出你的意思。

你說測試永遠不會成功(樣式表始終採用otherwise分支)。這表明node這個表達式並沒有對你期望的字符串進行評估,也沒有對可能被強制轉換爲你期望的字符串的文檔節點進行評估。可能的原因包括:

  • 您的XML沒有名爲node的元素。
  • 您的XML有一個名爲node的元素,但它不是引用您的代碼的模板的上下文節點的子元素。
  • 您的XML有一個名爲node的元素,它是上下文節點的子元素,但其字符串值不是構建的名稱。

這些都是可能的,但如果我不得不猜測,我猜這是第一個。