Ant映射器和保留文件夹结构



不确定是否有专门针对这一点的文档,在仔细阅读蚂蚁文档并进行了一些实验后找不到,但主要是:

比方说,在我的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."。

相关内容

  • 没有找到相关文章

最新更新