我有一个蚂蚁项目,我正在转换为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。有没有一种简单的方法可以做到这一点我错过了?
答案 0 :(得分:6)
好的,我想出来了。 ExpandProperties过滤器需要使用Ant项目设置其项目属性。这就是我将它配置为工作的方式:
copy {
from 'source_dir'
to 'dest_dir'
filter(org.apache.tools.ant.filters.ExpandProperties, project: ant.antProject)
}
这扩展了${property}
等属性与Ant完全相同的属性,而不会在没有大括号的美元符号上绊倒。