【问题标题】:Ant & how to parse a properties file to echo back the valuesAnt & 如何解析属性文件以回显值
【发布时间】:2013-12-04 07:45:43
【问题描述】:

我有一个属性文件,我想回显其中的值

<HSMKeys>
<Key domain="default" value="TestA" />
<Key domain="fixed" value="TestB" /> 
</HSMKeys>

作为

[echo] domain=default value=TestA
[echo] domain=fixed value=TestB

我怎样才能做到这一点,即遍历属性文件并拥有两个将在回声中的变量。

我已经尝试了以下

<for list="${HSMKeys.Key.domain}" param="domain">
<sequential>
<echo>domain=@{domain}</echo>
</sequential>
</for>

即我一次只能获得一个属性值,不能同时获得两个。

谢谢。

【问题讨论】:

    标签: ant ant-contrib


    【解决方案1】:

    正如@thekbb 所说,这不是一个属性文件,但是,ANT 支持parsing of XML files 作为属性。

    <project name="demo" default="print">
    
      <xmlproperty file="properties.xml"/>
    
      <target name="print">
        <echoproperties prefix="HSMKeys."/>
      </target>
    
    </project>
    

    产生以下输出:

    print:
    [echoproperties] #Ant properties
    [echoproperties] #Tue Dec 03 23:44:14 GMT 2013
    [echoproperties] HSMKeys.Key=,
    [echoproperties] HSMKeys.Key(domain)=default,fixed
    [echoproperties] HSMKeys.Key(value)=TestA,TestB
    

    可能不完全是您所需要的,但其优点是不需要像 Ant-contrib 这样的额外 jar。

    【讨论】:

      【解决方案2】:

      这不是属性文件。属性文件是键/值对。你如何填充list

      ant 会理解的属性文件如下所示:

      domain.default=TestA
      domain.fixed=testB
      

      我建议不惜一切代价避免使用 ant-contrib ...您真正想要做什么? 你可以简单地使用echoproperties

      <project name="test" default="echo" basedir=".">
      
          <property file="build.properties" />
      
          <target name="echo" >
              <echoproperties prefix="domain."/>
          </target>
      
      </project>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-31
        • 2017-07-20
        • 2017-07-25
        相关资源
        最近更新 更多