Как скопировать файл, только если соответствующий файл существует в Apache ant? - PullRequest
1 голос
/ 28 февраля 2020

Например:

src.dir
---a.py
---a.reqs.py
---b.py
---b.reqs.py
---c.py
dest.dir

В этом случае только a.py и b.py должны быть скопированы в dest.dir. Я попытался -

<copy todir="${dest.dir}">
<fileset dir="${src.dir}" includes="*.reqs.py"/>    
<mapper type="glob" from = "*.reqs.py" to = "*.py"></mapper>
</copy>

Однако вместо этого, похоже, вместо этого скопируйте файл reqs и переименуйте его, что не является обязательным.

1 Ответ

0 голосов
/ 28 февраля 2020

Mappers используются для переименований, а не для определения зависимостей, но вы можете сделать оба в одной задаче.

Это работает для меня:

<copy todir="${dest.dir}">
  <fileset dir="${src.dir}" includes="*.py">
    <present targetdir="${src.dir}">
      <mapper type="glob" from = "*.py" to = "*.reqs.py"></mapper>
    </present>
  </fileset>
</copy>

Это похоже на вашу попытку, но использует <present> селектор для объявления отношений зависимости для файлов "req" с использованием вложенного преобразователя.

В нем говорится "копируйте * .py файлы только в том случае, если * .req.py файлы с такими же именами присутствуют в sr c .dir".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...