Я пытаюсь исключить все каталоги, которые содержат строку «экспорт». Должен быть включен только один каталог с именем «exportpecial».
Этот способ «exportpecial» все еще не включен:
<fileset dir="${dir.root}/plugins" id="something">
<include name="abc/**" />
<exclude name="abc/*export**" />
<include name="abc/exportspecial/**" />
</fileset>
Ты можешь использовать селекторы
<fileset dir=".">
<include name="abc/**"/>
<or>
<filename name="**/exportspecial/**"/>
<not>
<filename name="**/*export*/**"/>
</not>
</or>
</fileset>
Пример файла сборки:
<project name="selector-test" default="includeTest" basedir=".">
<target name="includeTest" depends="prepare">
<path id="export.path">
<fileset dir=".">
<include name="abc/**"/>
<or>
<filename name="**/exportspecial/**"/>
<not>
<filename name="**/*export*/**"/>
</not>
</or>
</fileset>
</path>
<pathconvert pathsep="${line.separator}"property="echo.include.path"refid="export.path"/>
<echo>${echo.include.path}</echo>
</target>
<target name="prepare">
<touch file="abc/test/inc" mkdirs="true"/>
<touch file="abc/exportspecial/inc" mkdirs="true"/>
<touch file="abc/export/exc" mkdirs="true"/>
<touch file="abc/inc"/>
</target>
</project>
Других решений пока нет …