在ANT复制期间重命名文件

tar*_*ing 14 ant build-automation build-process file-manipulation

我想复制一个文件目录,并在此过程中重命名其中一些文件.当我运行下面的脚本时,没有任何副本.如果我在下面的文件中注释glob映像器,则复制文件(不重命名)

谢谢你的帮助.詹姆士

<?xml version="1.0" ?>
<project name="Create project structure" default="main">
  <target name="main" description="Copy template files to project folder">
    <echo>Copying template files to project folder</echo>
    <copy todir="${project.dir}" verbose="true" overwrite="true">
      <fileset dir="${shared.files}/templateproject" excludes=".svn"/>
      <mapper>
        <chainedmapper>
          <mapper type="glob" from="*PACKAGENAME*" to="*${package.name}*"/>
          <mapper type="glob" from="*GAMENAME*" to="*${game.name}*"/>
          <mapper type="identity"/>
        </chainedmapper>
      </mapper>
    </copy>
  </target>
</project>
Run Code Online (Sandbox Code Playgroud)

tar*_*ing 14

使用"移动"和Mnementh指示的正确映射器类型求助于解决方法.谢谢

<?xml version="1.0" ?>
<project name="Create project structure" default="main">
    <target name="main" description="Copy template files to project folder">
    <echo>Copying template files to project folder</echo>
    <copy todir="${project.dir}" verbose="true" overwrite="true">
        <fileset dir="${shared.files}/templateproject" excludes=".svn" />
    </copy>
    <move todir="${project.dir}">
        <fileset dir="${project.dir}" />
        <mapper>
        <mapper type="regexp"
                from="(.*)PACKAGENAME(.*)" to="\1${package.name}\2" />
        <mapper type="regexp"
                from="(.*)GAMENAME(.*)" to="\1${game.name}\2" />
        </mapper>
    </move>
    </target>
</project>
Run Code Online (Sandbox Code Playgroud)


Mne*_*nth 11

看来,glob-mapper只能用一个'*'.我会尝试regexp-mapper:

<mapper type="regexp" from="(.*)PACKAGENAME(.*)" to="\1${package.name}\2"/>
<mapper type="regexp" from="(.*)GAMENAME(.*)" to="\1${game.name}\2"/>
Run Code Online (Sandbox Code Playgroud)


小智 6

您的问题是您没有选择正确的映射器:<chainedmapper> 将链中的信息从第一个映射器传递到最后一个映射器

相反,<firstmatchmapper>应该使用,它将依次尝试所有映射器,直到匹配

参考:http://ant.apache.org/manual/Types/mapper.html

(相当古老的问题,但我刚刚找到了几乎相同的问题:-))