【问题标题】:Dynamic property names in antant 中的动态属性名称
【发布时间】:2011-07-12 22:03:47
【问题描述】:

我正在读取 ant 中的文件并通过 loadproperties 加载属性。我有兴趣使用名称未知的特定属性的值。我知道它遵循一种模式,因为这就是我加载属性的方式。

我可以回显属性并看到它正在加载。

但我不知道如何访问它的值,因为它的名称实际上是一种模式,而不是硬编码。

如何访问此属性的值以进行一些处理。

我希望这很清楚。请问我是否需要进一步澄清。

【问题讨论】:

  • 你能给出示例模式和匹配的属性名称吗?

标签: ant properties


【解决方案1】:

你应该使用 Ant 的 script 任务。

我建议使用 beanshell 脚本,因为它是纯 java 的。 例如,要打印项目的所有属性,请使用以下命令:

 <target name="echoprops">
    <script language="beanshell">
        System.out.println("All Properties: " + project.getProperties().keySet());
    </script>
 </target>

修改上面的脚本应该很容易得到你想要的属性。

要使用此任务,您需要先在 $ANT_HOME 中运行以下命令:

ant -f fetch.xml script -Ddest=user

这会将所有必需的可选 jar 下载到 ~/.ant/lib 。

【讨论】:

    【解决方案2】:

    看看 ant-contrib 包。它的 propertycopy 任务会做你需要的。如果您需要按照既定模式解析任意数量的属性,您可以将 ant-contrib 的 propertycopy 与 ant-contribs "for" 任务结合使用。

    http://ant-contrib.sourceforge.net/tasks/tasks/index.html

    【讨论】:

      猜你喜欢
      • 2015-07-27
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 2013-01-29
      • 2016-10-21
      • 2018-04-16
      相关资源
      最近更新 更多