不确定是否有专门针对此问题的文档,在仔细阅读 ant 文档并尝试了一下后找不到它,但主要是这样的:
假设在我的 Ant 构建中,我想要收集某个文件夹中的所有图像以及该文件夹中的所有子文件夹,以便我可以通过 ImageMagick 运行它们来转换移动图像并调整其大小。我用的是
<apply executable="\pathtoImageMagick\convert">
<fileset dir="${from.dir}/${dir.publish}/${dir.images}" />
<srcfile />
<arg value="-resize" />
<arg value="25%" />
<targetfile />
<mapper type="glob" from="*" to="${from.dir}/${dir.publish}/${dir.images}/mobile.*" />
</apply>
这适用于第一级文件,这样除了 test.jpg 之外,我还得到 mobile.test.jpg。
不幸的是,如果我的子文件夹中有图像,请说文件夹中的 test.jpg ${from.dir}/${dir.publish}/${dir.images}/home
我希望它转到 ${from.dir}/${dir.publish}/${dir.images}/home/mobile.test.jpg
,我该怎么做?它尝试创建 ${from.dir}/${dir.publish}/${dir.images}/mobile.home/test.jpg
,但这是不正确的。
有使用 Ant 和 Mapper 经验的人有什么想法吗?非常感谢。
最佳答案
全局映射在这里没有用,因为您想在匹配的“原子”中间插入一些东西。 Ant 文档中有一个此类映射的示例,该示例使用 regexpmapper
,类似:
<mapper type="regexp" from="(.*)/([^/]+)" to="\1/mobile.\2" />
from
表示:获取 \1
的目录路径,获取 \2
的文件名。然后在 to
中插入前缀。
关于java - Ant 映射器和保留文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6222043/