Ответ 1
Я думаю, что это должно быть:
<copy todir="${dir.classes}">
<fileset dir="${dir.src}" >
<exclude name="**/*.java"/>
<exclude name="**/A-dir/**/B-dir/**"/>
</fileset>
</copy>
Обратите внимание на **/A-dir/**
вместо A-dir/**
.
Есть много вопросов по этой теме, но ни один из ответов не решает мою проблему. Запуск этой темы снова, чтобы получить свежий ввод.
Я попробовал два разных подхода для исключения B-dir и всего его содержимого в A-dir/subdir. Но никто не работает. FYI, a-dir находится под dir.src 1)
<copy todir="${dir.classes}" excludes="A-dir/**/B-dir/**">
<fileset dir="${dir.src}" >
<exclude name="**/*.java"/>
</fileset>
</copy>
2)
<copy todir="${dir.classes}">
<fileset dir="${dir.src}" >
<exclude name="**/*.java"/>
<exclude name="A-dir/**/B-dir/**"/>
</fileset>
</copy>
Я попытался удалить все старые банки и сделать чистую компиляцию, как кто-то предложил. Но это тоже не помогает.
Я думаю, что это должно быть:
<copy todir="${dir.classes}">
<fileset dir="${dir.src}" >
<exclude name="**/*.java"/>
<exclude name="**/A-dir/**/B-dir/**"/>
</fileset>
</copy>
Обратите внимание на **/A-dir/**
вместо A-dir/**
.