Подтвердить что ты не робот

Ant ошибка цели: проблема Antlib или Ivy?

Возможный дубликат:
Ivy не может разрешить зависимость, не в состоянии найти причину

Я пытаюсь запустить следующую задачу сборки (initIvy):

<?xml version="1.0" encoding="UTF-8"?>
<project name="myproject-build" default="package" basedir=".." xmlns:ivy="antlib:org.apache.ivy.ant">
    <property file="build/build.properties"/>
    <property environment="env"/>

    <!-- Ant library path, including all of its plugins. -->
    <path id="ant.lib.path">
        <fileset dir="${env.ANT_HOME}/lib" includes="*.jar"/>
    </path>

    <!-- CONFIGURE IVY -->
        <taskdef resource="org/apache/ivy/ant/antlib.xml"
            uri="antlib:org.apache.ivy.ant" classpathref="ant.lib.path"/>

    <!-- Use Ivy tasks to resolve dependencies into the local Ivy cache. -->
    <target name="initIvy">
        <!-- Initialize Ivy and connect to host repository. -->
        <echo message="Initializing Apache Ivy and connecting to the host repository."/>
        <ivy:settings url="${ivy.std.repo.settings.url}" realm="${ivy.std.repo.realm}" username="${ivy.std.repo.username}" passwd="${ivy.std.repo.password}"/>

        <!-- Clear/flush the Ivy cache. -->
        <echo message="Cleaning the local Ivy cache for the current build."/>
        <ivy:cleancache/>
    </target>

    <!-- Rest of buildfile omitted for brevity. -->

</project>

Когда я запускаю ant -buildfile build.xml initIvy, я получаю следующий вывод:

Buildfile: /<path-to-my-project>/build/build.xml
    [taskdef] Could not load definitions from resource org/apache/ivy/ant/antlib.xml. It could not be found.

initIvy:
    [echo] Initializing Apache Ivy and connecting to the host repository.

BUILD FAILED
/<path-to-my-project>/build/build.xml:81: Problem: failed to create task or type antlib:org.apache.ivy.ant:settings
    Cause: The name is undefined.
    Action: Check the spelling.
    Action: Check that any custom tasks/types have been declared.
    Action: Check that any <presetdef>/<macrodef> declarations have taken place.
    No types or tasks have been defined in this namespace yet

This appears to be an antlib declaration. 
Action: Check that the implementing library exists in one of:
    -/<path-to-my-ANT_HOME>/lib
    -/home/myUser/.ant/lib
    -a directory added on the command line with the -lib argument

Когда я перехожу к ${ANT_HOME}/lib, я не вижу никаких JAR, помеченных как "antlib *.jar".

Итак, я предполагаю, что я загрузил версию Ant, которая не включала Antlib, и теперь, когда я использую Ivy (который использует Antlib), сборка задыхается?

Если это проблема Antlib, то я считаю, что мне нужен один из доступных дистрибутивов здесь. Если да, может кто-то подтвердить, какой из них я должен использовать (который содержит только Antlib, а не что-то еще) и подтвердить процесс его установки; т.е. это так же просто, как положить правильный JAR в ${ANT_HOME}/lib? Etc.

Если это проблема Айви, может ли кто-нибудь указать мне в правильном направлении относительно того, что может происходить?

И если это не Antlib и Ivy, то для вопроса непосредственно выше. Спасибо заранее!

4b9b3361

Ответ 1

Я думаю, что вам может не хватать библиотеку Apache IVY. Загрузите его отсюда - apache ivy Скопируйте банку в каталог ant lib.

Например (измените номера версий соответственно):

  • Загрузите и установите ant (например, C:\Apps\Tools\apache-ant-1.9.7).
  • Загрузите и извлеките Ivy (например, C:\Users\UserName\Downloads\apache-ivy-2.4.0)
  • Скопируйте C:\Users\UserName\Downloads\apache-ivy-2.4.0\ivy-2.4.0.jar в C:\Apps\Tools\apache-ant-1.9.7\lib.

Ant настроен на использование Ivy.