Renaming files during ANT copy

前端 未结 3 667
梦如初夏
梦如初夏 2020-12-30 05:03

I\'d like to copy a directory of files, and rename some of them in the process. When I run the script below, nothing copies. If I comment the glob mappers in the file below,

相关标签:
3条回答
  • 2020-12-30 05:17

    Your problem is that you did not choose the right mapper: <chainedmapper> will pass information in chain from the first to the last mapper

    Instead, <firstmatchmapper> should be used, which will try all mappers in turn, until one matches

    Reference: http://ant.apache.org/manual/Types/mapper.html

    (quite an old question, but I just found searching for almost the same problem :-))

    0 讨论(0)
  • 2020-12-30 05:35

    Resorted to a workaround, using "move", and the correct mapper type as indicated by Mnementh. Thanks

    <?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>
    
    0 讨论(0)
  • 2020-12-30 05:39

    It seems, that the glob-mapper works only with one '*'. I would try the regexp-mapper:

    <mapper type="regexp" from="(.*)PACKAGENAME(.*)" to="\1${package.name}\2"/>
    <mapper type="regexp" from="(.*)GAMENAME(.*)" to="\1${game.name}\2"/>
    
    0 讨论(0)
提交回复
热议问题