Похоже, что была ошибка (хотя я не смог найти цитату Bugzilla) в процессе генерации ant-скрипта PDE Build начиная с версии 3.2, в результате которого был получен фрагмент скрипта ant build.xml
, подобный этому из bin.includes
:
<copy todir="${destination.temp.folder}/my_plugin" failonerror="true" overwrite="false">
<fileset dir="${basedir}" includes="META-INF/,Database Elements/" />
</copy>
В соответствующей документации Ant говорится, что includes
содержит "список шаблонов, разделенных запятыми или пробелами". Таким образом (поскольку мое имя каталога содержит пробел и было скопировано буквально в значение атрибута includes
), я думаю, что задача copy
пыталась включить файл с именем Database
и каталог с именем Elements/
. Ни один из них не существовал, поэтому они были тихо проигнорированы. Я подозреваю, что та же проблема была бы укушена, если бы в имени каталога была запятая, но я не проверял это.
Поскольку я использую Eclipse 3.5 в интерактивном режиме, я решил, наконец, отделить экземпляр Eclipse моей безголовой сборки от моей целевой платформы (которая пока остается на уровне 3.2) и обновить мою безголовую сборку PDE до 3.5 (пытаясь произвести минимальная конфигурация сборки PDE из плагинов моего интерактивного экземпляра). Теперь сгенерированный build.xml
содержит это вместо:
<copy todir="${destination.temp.folder}/my_plugin" failonerror="true" overwrite="true">
<fileset dir="${basedir}">
<include name="META-INF/"/>
<include name="Database Elements/"/>
</fileset>
</copy>
Соответствующая Ant документация на этот раз указывает, что единственными специальными символами в отдельном include
являются *
и ?
. Действительно, эта ошибка, кажется, была исправлена где-то между 3.2 и 3.5: моя безголовая сборка PDE на базе 3.5 теперь производит плагин, содержащий Database Elements
; мои тесты счастливы; мой код счастлив; Я счастлив.