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

标签 java ant

不确定是否有专门针对此问题的文档,在仔细阅读 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/

相关文章:

java - HttpUrlConnection Cookie

java - 骨骼动画: bind pose

Ant 删除任务出错

java - Ant并行性能

android - phonegap 运行 android : command failed to execute: ant jar - on Windows

ant ${java.home} 指向 $JAVA_HOME/jre,而不是 $JAVA_HOME

java - 如何读取存储在 *.epf 文件中的数据

java - Android 错误 : invoke a null object. JSON/Volley

java - 在解决了最初的越界异常后,如何将 a 与 b 或 c 相乘

ant - 在 Ant 中,将文件夹树中的所有文件复制到单个文件夹中?