Мой текущий файл сборки имеет следующие повторяющиеся задачи:
<jar jarfile="${build.lib}/${prefix}-foo.jar">
<fileset dir="${build.classes}">
<include name="com/a/c/foo/**"/>
</fileset>
</jar>
<jar jarfile="${build.lib}/${prefix}-bar.jar">
<fileset dir="${build.classes}">
<include name="com/a/c/bar/**"/>
</fileset>
</jar>
... и т. Д. Проблема в том, что build.xml должен быть изменен для каждого нового пакета или для каждого нового подпроекта. Это частое явление, когда я работаю.
Я хотел бы заменить это логикой, которая будет динамически генерировать JAR-файлы и имена их файлов на основе «корневого» пакета. Так, например, я мог бы установить корневой пакет равным com / a / c, и все пакеты непосредственно под этим пакетом получили бы свой собственный JAR. Обратите внимание, что все пакеты в «foo» или «bar» будут просто частью «foo.jar» или «bar.jar».
Я искал задачи логики цикла для ANT. Я нашел один в каждом ant-contrib и JWare / AntXtras, но я не смог заставить их работать так, как хотелось бы.