14

ファイルのディレクトリをコピーし、その過程でそれらの名前を変更したいと思います。以下のスクリプトを実行すると、何もコピーされません。以下のファイルのグロブ マッパーにコメントすると、ファイルがコピーされます (名前を変更せずに)。

助けてくれてありがとう。ジェームズ

<?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>
4

3 に答える 3

14

「move」を使用して回避策を講じ、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>
于 2009-08-07T12:28:22.967 に答える
11

glob-mapperは 1 つの '*' でのみ機能するようです。私はregexp-mapperを試します:

<mapper type="regexp" from="(.*)PACKAGENAME(.*)" to="\1${package.name}\2"/>
<mapper type="regexp" from="(.*)GAMENAME(.*)" to="\1${game.name}\2"/>
于 2009-08-07T10:42:05.080 に答える
6

あなたの問題は、適切なマッパーを選択していないことです:<chainedmapper> 最初のマッパーから最後のマッパーまでチェーンで情報を渡します

代わりに、<firstmatchmapper>いずれかが一致するまですべてのマッパーを順番に試す、を使用する必要があります。

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

(かなり古い質問ですが、ほぼ同じ問題を検索しているだけです:-))

于 2011-09-02T08:31:32.793 に答える