不确定是否有专门针对这一点的文档,在仔细阅读蚂蚁文档并进行了一些实验后找不到,但主要是:
比方说,在我的Ant构建中,我想收集某个文件夹中的所有图像以及该文件夹中的全部子文件夹,这样我就可以通过ImageMagick运行它们来转换移动图像并调整其大小。我使用
<apply executable="pathtoImageMagickconvert">
<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。
不幸的是,如果我在子文件夹中有一个图像,比如文件夹${from.dir}/${dir.publish}/${dir.images}/home
中的test.jpg,并且我希望它转到${from.dir}/${dir.publish}/${dir.images}/home/mobile.test.jpg
,我该怎么做?它试图创建${from.dir}/${dir.publish}/${dir.images}/mobile.home/test.jpg
,但这是不正确的。
有蚂蚁和mapper经验的人有什么想法吗?非常感谢。
全局映射在这里没有用处,因为您想要在匹配的"原子"中间插入一些东西。Ant文档中有一个使用regexpmapper
的此类映射的示例,类似于:
<mapper type="regexp" from="(.*)/([^/]+)" to="1/mobile.2" />
from
说:获取1
的目录路径,获取2
的文件名。然后在to
中插入前缀。
也许我读错了,但作为其中的一部分,你是否也试图将图像从一个目录移动/复制到另一个目录?
如果没有,您只需要将${from.dir}/${dir.publish}/${dir.images}
的任何子目录中的所有*.jpg
文件映射到mobile.*.jpg
,然后尝试以下操作:
<fileset includes="${from.dir}/${dir.publish}/${dir.images}/**/*" />
...
<mapper type="glob" from="*" to="mobile.*" />
<fileset>
元素应该包括该路径的所有子目录中的所有文件,映射器应该在其文件名前加上"mobile."。