Моего текущим файлом сборка имеет следующие повторяющиеся задачи:Динамически генерировать JAR-файлы на основе имени пакета с ANT
<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, но я не мог заставить себя работать по своему желанию.
Это похоже на своего рода странное требование. Можете ли вы подробнее рассказать о том, почему одна банка не подходит для ваших целей? – Jherico
Согласен, это определенно не в левом поле. У нас есть «базовая кувшин» для всей общей apis. Оттуда каждый JAR может быть помещен в другую среду linux с базовой банкой. Кроме того, большинство наших клиентов хотят заменить одну или две банки, содержащие небольшую часть приложения, вместо замены всего. – 2009-05-30 03:54:12