4

_ $ {env} .xmlで終わるルートフォルダから始まるすべてのディレクトリの下にあるファイルをコピーし、見つかった場合はファイル名から_ $ {env}を削除するか、ディレクトリに存在するxmlファイルをコピーしようとしています。 。これを機能させることができません。助けてください(名前を変更するには、移動とマッパーが必要で、どういうわけかそれらを一緒に織り込むことができません)。

<target name="main">
    <copy todir="qa-wprelease"> 
        <fileset  dir="bin-debug" includes="**/*.xml"> 
            <or>
                <filename name="*_${env}.xml"/> 
                <filename name="*.xml" />
            </or>
        </fileset>
    </copy> 
</target>
4

2 に答える 2

11

<copy>タスクのマニュアルを確認してください-ネストされた要素として<copy>取ることが<mapper>でき、パターンを使用してコピー中にファイル名を変更できます。<mapper>には多くの種類があり、そのうちのいくつかではjavascriptを使用してファイル名を変更することもできます。

だから...多分あなたはそれをこのように行うことができます(テストされていないのでそれが機能するかどうかはわかりません):

<copy todir="qa-wprelease" includeemptydirs="false">
    <fileset dir="bin-debug" includes="**/*.xml" />
    <globmapper from="*_${env}.xml" to="*.xml"/>
</copy>
于 2012-07-11T01:44:27.347 に答える
0

まず、bin-debugディレクトリの下にあるすべてのXMLファイルをにコピーしますqa-wpreleaseqa-wpreleaseで終わるXMLファイルごとに_${env}.xml、タスクを使用して。<move>を削除し_${env}ます。

<target name="main">
  <mkdir dir="qa-wprelease" />

  <copy todir="qa-wprelease" includeemptydirs="false">
    <fileset dir="bin-debug" includes="**/*.xml" />
  </copy>
  <move todir="qa-wprelease" includeemptydirs="false">
    <fileset dir="qa-wprelease" includes="**/*_${env}.xml" />
    <mapper type="glob" from="*_${env}.xml" to="*.xml"/>
  </move>
</target>
于 2012-07-10T07:15:30.790 に答える