Вы хотите, чтобы задача jar
копировала файлы в build/main
в dist/main/lib
jar, но
<fileset dir="dist/main/classes" includes="build/main"/>
означает упаковывать файлы из dist/main/classes/build/main
в файл jar.
Взгляните на пример из документа задачи Ant-Jar:
<jar destfile="${dist}/lib/app.jar">
<fileset dir="${build}/classes"
excludes="**/Test.class"
/>
<fileset dir="${src}/resources"/>
</jar>
(код выше) объединяет все файлы в каталоге $ {build} / classes, а также в каталоге $ {src} / resources в файл с именем app.jar в каталоге $ {dist} / lib.
Чтобы выполнить ваш запрос, я думаю, вы можете скопировать классы, ресурсы и зависимости с помощью задачи <copy>
в нужную вам структуру каталогов, а затем выполнить jar для каталога.