使用gradle扩展属性时如何获得ant行为?

时间:2011-09-01 20:50:54

标签: ant properties gradle

我有一个蚂蚁项目,我正在转换为gradle。在蚂蚁项目中,有类似的东西:

<copy todir="dest_dir">
  <fileset>
     ...
  </fileset>
  <filterchain>
    <expandproperties/>
  </filterchain>
</copy>

过滤器链会扩展${property}之类的属性,但忽略没有大括号的美元符号。我试图在gradle中复制这种行为。

如果我expand如下所示,gradle将文件扩展为groovy模板,尝试用大括号扩展美元符号。

copy {
   from 'source_dir'
   into 'dest_dir'
   expand(project.properties)
}

如果我filter使用了蚂蚁ExpandProperties过滤器类,则会出现NullPointerException。有没有一种简单的方法可以做到这一点我错过了?

1 个答案:

答案 0 :(得分:6)

好的,我想出来了。 ExpandProperties过滤器需要使用Ant项目设置其项目属性。这就是我将它配置为工作的方式:

copy {
    from 'source_dir'
    to 'dest_dir'
    filter(org.apache.tools.ant.filters.ExpandProperties, project: ant.antProject)
}

这扩展了${property}等属性与Ant完全相同的属性,而不会在没有大括号的美元符号上绊倒。