2012-06-15 34 views
0

我試圖做類似下面..動態傳遞多個值在螞蟻的build.xml

<property name="INSTANCE_NAME" value="${PRODUCT5_JBOSS_INSTANCE}" /> 

PRODUCT5_JBOSS_INSTANCE屬性文件中-takes該鍵名的值所以,當我給像上面的我值爲INSTANCE_NAME = product5-jboss

但上面的線是重複多次針對不同的產品,如

<property name="INSTANCE_NAME" value="${PRODUCT6_JBOSS_INSTANCE}" /> 
    <property name="INSTANCE_NAME" value="${PRODUCT7_JBOSS_INSTANCE}" /> 

所以裏面value="${PRODUCT7_JBOSS_INSTANCE}"我想通過產品7動態像下面..

- 但是這並不工作。因爲兩個$符號不起作用。我現在的目標是PRODUCT_NUMBER應該得到的值爲PRODUCT7然後 PRODUCT7_JBOSS_INSTANCE應該從文件中得到的值爲product7-jboss

u能幫助我與此

+0

複製的[變量從屬性在Ant文件(http://stackoverflow.com/q/10747065/127035) – sudocode

回答

2

的方法您可以在此使用macrodef,如圖所示的問題的答案Variables from properties file in Ant解決。

下面是你的情況相同的一個例子。

<project default="test"> 

    <!-- override on command line --> 
    <property name="PRODUCT_NAME" value="PRODUCT5"/> 

    <property file="test.properties"/> 

    <macrodef name="property-read"> 
     <attribute name="name"/> 
     <attribute name="from"/> 
     <sequential> 
      <property name="@{name}" value="${@{from}_JBOSS_INSTANCE}"/> 
     </sequential> 
    </macrodef> 

    <target name="test"> 
     <echo>PRODUCT_NAME: ${PRODUCT_NAME}</echo> 
     <property-read name="instance" from="${PRODUCT_NAME}"/> 
     <echo>DYNAMIC PROPERTY VALUE: ${instance}</echo> 
    </target> 

</project> 

屬性定義:

$ cat test.properties 
PRODUCT5_JBOSS_INSTANCE=product5.jboss.instance 
PRODUCT7_JBOSS_INSTANCE=product7.jboss.instance 

輸出:

$ ant -DPRODUCT_NAME=PRODUCT7 
Buildfile: C:\Users\sudocode\tmp\ant\build.xml 

test: 
    [echo] PRODUCT_NAME: PRODUCT7 
    [echo] DYNAMIC PROPERTY VALUE: product7.jboss.instance 

BUILD SUCCESSFUL 
Total time: 0 seconds 
$ 
$ 
$ ant -DPRODUCT_NAME=PRODUCT5 
Buildfile: C:\Users\sudocode\tmp\ant\build.xml 

test: 
    [echo] PRODUCT_NAME: PRODUCT5 
    [echo] DYNAMIC PROPERTY VALUE: product5.jboss.instance 

BUILD SUCCESSFUL 
Total time: 0 seconds 
+0

感謝您提供的方法。如果您在build.xml中指定了下面的行,上面的工作將非常完美 當我試圖從屬性文件讀取相同的文件時,它不起作用,並將值賦給{PRODUCT5_JBOSS_INSTANCE} – raga

+0

它適用於我。我更新了示例以加載屬性。我認爲你得到的結果表明要麼不加載所需的屬性文件,要麼屬性關鍵字與預期不同。 – sudocode

+0

是的,我已經使用了錯誤的屬性文件..現在它的工作令人驚歎。謝謝很多 – raga