Ant 1.8 включает или импортирует с коллекцией вложенных ресурсов - PullRequest
2 голосов
/ 12 июня 2010

Я бы хотел, чтобы Ant автоматически включал или импортировал ресурсы, соответствующие определенному шаблону, но я действительно борюсь с синтаксисом.Вот что я пробовал:

<import>
    <fileset dir="${basedir}" includes="*-graph.xml" />
</import>

Тем не менее, я просто получаю сообщение об ошибке

import requires file attribute or at least one nested resource

В документации по импорту (и включающей) говорится, что вы можете использовать вложенный ресурсcollection, а в документации для коллекций ресурсов говорится, что - это коллекция ресурсов.Я гуглил и не могу найти никаких полезных примеров.

Я использую Ant 1.8.1 (проверено с помощью ant -version)

EDIT

Найденоэта проблема.Во-первых, ЧТО-ТО должно соответствовать выражению.Если нет подходящих файлов, он взрывается - даже с опциональным = true, что странно!Во-вторых, подходящие файлы должны иметь правильный файл Ant (даже если они просто содержат- просто создать пустой файл не достаточно хорошо).

Лучше сообщения об ошибках, пожалуйста, Apache!: -)

Ответы [ 2 ]

1 голос
/ 06 декабря 2012

Вот простой способ решения этой проблемы:

<project name="the-name-of-the-project">
  <import>
    <fileset dir="${basedir}" includes="*-graph.xml"  erroronmissingdir="false"/>
    <fileset file="${ant.file.the-name-of-the-project}"/>
  </import>
</project>

Таким образом, набор импортируемых файлов никогда не бывает пустым, поскольку он включает файл, содержащий эту декларацию.Это работает только для директив <import>, поскольку в нем пропущены уже импортированные файлы;Директивы <include> могут привести к рекурсии.

Обратите внимание, что erroronmissingdir="false" необязательно, если basedir всегда существует.

1 голос
/ 12 июня 2010

Попробуйте:

<foreach target="-import" param="file.name">
  <fileset dir="${basedir}" includes="*-graph.xml" />
</foreach>

<target name="-import">
  <import file="${file.name}" />
</target>

входит в задачи ant-contrib (http://ant -contrib.sourceforge.net / tasks / tasks / index.html ) Я не являюсьуверен, что это сработает, я просто придумал это на лету.

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