Как использовать Ant для загрузки / распаковки jar-файлов из одного списка jar-файлов?

#java #ant #build #jar

#java #ant #сборка #jar

Вопрос:

Как я могу использовать Ant для загрузки и распаковки java jar, указав список jar только один раз? Ключевым моментом здесь является наличие одного списка jar-файлов и генерация:

  1. список URL-адресов для загрузки с помощью задачи get
  2. путь к классу / набор файлов тех же jar-файлов локально

Я бы действительно хотел указать список jar-файлов только один раз.

Комментарии:

1. Возможно, вы захотите изучить apache ivy , который выполняет подобные действия и многое другое.

2. Я бы хотел избежать добавления дополнительных частей и просто придерживаться простого Ant, если это возможно.

3. Ant в порядке, но Maven 3 — это бомба

Ответ №1:

 <property name="dependency.lib.dir" location="dependencies" />

<mkdir dir="${dependency.lib.dir}" />

<get dest="${dependency.lib.dir}">
    <url url="http://server1/lib1.jar"/> 
    <url url="http://server2/lib2.jar"/>
</get>

<fileset id="dependency.libs" dir="${dependency.lib.dir}">
    <include name="*.jar" />
</fileset>

<path id="project.debug.classpath">
    <fileset refid="dependency.libs" />
</path>
  

Вы можете добавить дополнительные подэлементы в <path> , если у вас есть локальный каталог lib.

Комментарии:

1. Проблема с приведенным выше фрагментом заключается в том, что dependency.lib.dir может иметь зависимости, отличные от предыдущего запуска, которые больше не желательны.

2. @Luke, не стесняйтесь добавить шаг очистки, который удалит каталог заранее.

Ответ №2:

Насколько я могу судить, это невозможно с ant.