Ant: самый простой способ скопировать относительный список файлов - PullRequest
2 голосов
/ 11 июня 2010

Используя Ant, я хочу скопировать список файлов из одного проекта в другой, где каждый проект имеет одинаковую структуру каталогов.Есть ли способ заставить работать следующее:

<project name="WordSlug" default="pull" basedir=".">

  <description>
      WordSlug: pull needed files
  </description>

  <property name="prontiso_home" location="../../prontiso/trunk"/>

  <!-- I know this doesn't work, what's the missing piece? -->
  <target name="pull" description="Pull needed files">
      <copy todir="." overwrite="true">
        <resources>
          <file file="${prontiso_home}/application/views/scripts/error/error.phtml"/>
          <file file="${prontiso_home}/application/controllers/CacheController.php"/>
          <!-- etc. -->
        </resources>
      </copy>
  </target>

</project>

Успех - автоматическое получение путей:

${prontiso_home}/application/views/scripts/error/error.phtml copied to ./application/views/scripts/error/error.phtml
${prontiso_home}/application/controllers/CacheController.php copied to ./application/controllers/CacheController.php

Спасибо!

Ответы [ 2 ]

2 голосов
/ 11 июня 2010

Попробуйте создать набор файлов:

<copy todir="." overwrite="true">
    <fileset dir="${prontiso_home}/application/">
        <include name="views/scripts/error/error.phtml,controllers/CacheController.php"/>
    </fileset>
</copy>

Обычно, однако, вы используете набор файлов для определения шаблонов файлов для копирования, например, "копировать все файлы PHP в каталоге моего приложения:

    <fileset dir="${prontiso_home}/application/">
        <include name="**/*.phtml,**/*.php"/>
    </fileset>
0 голосов
/ 11 июня 2010

ОП здесь.У меня есть рабочее решение:

<project name="WordSlug" default="pull" basedir=".">

  <description>
      WordSlug: pull needed files
  </description>

  <property name="prontiso_home" location="../../prontiso/trunk"/>

  <target name="pull" description="Pull needed files">
      <copy todir="." overwrite="true" verbose="true">
        <fileset dir="${prontiso_home}">
          <or>
            <filename name="/application/views/scripts/error/error.phtml"/>
            <filename name="/application/controllers/CacheController.php"/>
          </or>
        </fileset>
      </copy>
  </target>

</project>
...