Добавить пользовательские библиотеки в путь к классу Ant Builder - PullRequest
9 голосов
/ 06 сентября 2010

У меня проблема с настройкой Ant Builder для моих проектов Eclipse.

У меня есть несколько сторонних библиотек, настроенных как пользовательские библиотеки в Eclipse. Эти библиотеки добавляются в путь сборки моих проектов, и все работает нормально.

Моя проблема в том, что если я хочу использовать Ant Builder из Eclipse, мне нужно будет добавить некоторые пользовательские библиотеки в путь к классам Ant Builder, чтобы он заработал. Мне нужны эти библиотеки, потому что они включают в себя несколько определений задач и определений типов для Ant, а не для компиляции моих проектов. Но как я могу добавить эти пользовательские библиотеки в путь классов Ant Builder? Я не хочу «жестко» кодировать их, добавляя их вручную, потому что, если мне придется изменить одну из этих библиотек в будущем, мне также придется поддерживать все Ant Builders. И я не знаю, как load определяет путь к пользовательским библиотекам во время выполнения в Ant для их динамической загрузки, потому что мне нужны эти библиотеки при начальной загрузке Ant, чтобы можно было успешно определить мои необходимые задачи Ant.

Ответы [ 3 ]

10 голосов
/ 20 октября 2010

В этом случае вы можете добавить JAR-файлы (содержащие taskdefs) в среду выполнения Ant.

Окно -> Настройки, выберите слева «Ant -> Runtime».Сосредоточьтесь на «Глобальных записях», затем используйте кнопку «Добавить JAR» справа, чтобы добавить JAR-файлы.

Добавленные вами JAR-файлы будут добавлены в любой процесс Ant, работающий в Eclipse.

Ваш следующий вопрос может быть: «Почему я должен добавить JAR-файлы? Я не могу добавить свою пользовательскую библиотеку?».Хороший вопрос, рад, что вы (почти собирались) спросили.Меня тоже сводит с ума, и я понятия не имею, почему Eclipse не предоставляет эту функциональность.Возможно, пришло время открыть запрос функции ...

Редактировать Февраль 2014: оказывается, что добавление пользовательских библиотек в путь к классам Ant уже было запрошено (https://bugs.eclipse.org/bugs/show_bug.cgi?id=211669). Похожеиз этого я был тем, кто снова открыл это ...

1 голос
/ 01 декабря 2010

Я не уверен, поможет ли это вам, но мне нравится использовать Ivy в этой ситуации. У меня есть собственное расширение муравья, которое я включаю таким образом:

build.xml:

<project name="project" basedir="." default="deploy" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:myNamespace="antlib:org.company.module">
    <property file="build.${user.name}.properties" />
    <property file="build.${env.COMPUTERNAME}.properties" />
    <property file="build.properties" />
    <property file="build-base.properties" />

    <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" />

    <!-- Configuration for external ant libs -->
    <property name="apache.ant.ext.lib" value="${target.root}/antlib" />
    <mkdir dir="${apache.ant.ext.lib}" />
    <ivy:retrieve inline="true" pattern="${apache.ant.ext.lib}/[artifact]-[revision]-[type].[ext]"
        conf="master" organisation="org.company" module="module" revision="1.0" />
    <path id="apache.ant.ext.lib.classpath">
        <fileset dir="${apache.ant.ext.lib}" includes="*.jar" />
    </path>
    <taskdef classpathref="apache.ant.ext.lib.classpath" resource="path/to/antlib.xml" />
...

тогда ваши библиотеки будут извлечены во временную папку ant ext lib для использования ant во время ее выполнения, но будут исключены из вашего проекта. Eclipse имеет плагин для Ivy (IvyDE), и эта техника значительно упростила мою жизнь.

0 голосов
/ 22 сентября 2013

Добавление новых пользовательских / внешних банок вручную затруднительно - вы правы.

Я обнаружил, что лучший способ избежать этого - заменить ANT_HOME с Ant в комплекте с Eclipse на автономную установку Ant, которую можно использовать из любой IDE, командной строки и т. Д.

Перейдите к Window > Preferences и на левой панели выберите Ant > Runtime. Нажмите кнопку Ant Home в правой части окна и выберите корневой каталог вашей автономной установки Ant. Eclipse будет достаточно любезен, чтобы обновить Ant Home Entries в главной панели, чтобы использовать вместо этого эту установку. Я использую Eclipse Juno здесь - инструкции могут немного отличаться для других версий.

Теперь все jar-файлы, добавленные в ANT_HOME / lib, будут доступны из ваших файлов build.xml без необходимости вручную добавлять их в путь к классам.

Я бы хотел поблагодарить Касима Рашида за то, что он показал мне этот метод в своем блоге по адресу http://www.qasimrasheed.com/post.cfm/eclipse-configure-ant-home. Это намного лучше, чем ручная замена Ant Home Entries (что приводит к вашей проблеме с необходимостью обновления на этом каждый раз, когда добавляется новая банка).

...