2009-03-18 6 views
2

Я хочу перебрать список флагов (неопределенное число) и добавить их все в файл jar. Чтобы добавить их я планирую использовать что-то вроде этого:ant итерация по файлам

<jar id="files" jarfile="all.jar"> 
    <zipfileset src="first.jar" includes="**/*.java **/*.class"/> 
    <zipfileset src="second.jar" includes="**/*.java **/*.class"/> 
</jar> 

но как я итерацию над ними? У меня нет ant-contrib

Спасибо!

ответ

4

Если у вас нет доступа к ant-contribFor task, вы можете в конечном итоге придется определить свою custom Task за то, что вам нужно ...

Если у вас есть ant1.6 и выше, вы также можете попробовать subant (см New Ant 1.6 Features for Big Projects):

Если вы используете <subant> «s genericantfile приписывать это вроде работает как <antcall> вызова цели в том же файле сборки, содержащей задачу.
В отличие от <antcall>, <subant> принимает список или набор каталогов и будет вызывать цель один раз для каждого каталога, задающего базовый каталог проекта.

Это полезно, если вы хотите выполнить ту же операцию в произвольном количестве каталогов.

+0

Да, это был бы правильный ответ! отлично работает для меня! спасибо за информацию, см. также http://www.softwarebyrichard.com/content/iterating-through-directory-ant –

4

Просто используйте zipgroupfileset с Ant Zip task

<zip destfile="out.jar"> 
    <zipgroupfileset dir="lib" includes="*.jar"/> 
</zip> 

Это будет выравниваться содержание всех включенных Jar библиотек.

+0

Я пробовал это, и он работает. Но я столкнулся с классом, который не существует, когда я запускаю банку - это как если он не знает, что они там (но он компилируется ...) – Yossale

 Смежные вопросы

  • Нет связанных вопросов^_^