Bluszcz nie rozwiązuje zależności, nie potrafi znaleźć przyczyny

Podczas używania ivy:retrieve, nie rozwiązuje zależności, która powinna zostać pobrana. Wyjście wygląda tak:

Buildfile: C:\Users\Simon\workspace\apollo\build.xml
init:
resolve:

BUILD FAILED
C:\Users\Simon\workspace\apollo\build.xml:42: Problem: failed to create task or type antlib:org.apache.ivy.ant:retrieve
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:
        -C:\Users\Simon\eclipse\plugins\org.apache.ant_1.8.2.v20120109-1030\lib
        -C:\Users\Simon\.ant\lib
        -a directory added on the command line with the -lib argument


Total time: 348 milliseconds

Odpowiednia sekcja build.xml wygląda tak:

  <target name="resolve" depends="init">
    <ivy:retrieve pattern="${lib}/[artifact]-[revision].[ext]" sync="true" />
  </target>

Tutaj jest również lista tego, co powinno być pobierane (z build.xml)

  <target name="doc" depends="build">
    <javadoc sourcepath="${src}" classpathref="libraries" access="private" destdir="${doc}" windowtitle="Apollo">
      <doclet name="org.jboss.apiviz.APIviz" pathref="libraries">
        <param name="-sourceclasspath" value="${bin}" />
        <param name="-author" />
        <param name="-version" />
        <param name="-use" />
        <param name="-nopackagediagram" />
      </doclet>
      <doctitle><![CDATA[<h1>Apollo</h1>]]></doctitle>
      <link href="http://download.oracle.com/javase/6/docs/api/" />
      <link href="http://docs.jboss.org/netty/3.2/api/" />
      <link href="http://guava-libraries.googlecode.com/svn/trunk/javadoc/" />
      <link href="http://www.junit.org/apidocs/" />
      <link href="http://commons.apache.org/compress/apidocs/" />
      <link href="http://jruby.org/apidocs/" />
    </javadoc>
  </target>
Author: nbrooks, 2012-03-24

5 answers

Mrówka nie może znaleźć ivy jar. Musi być pobrany , wyodrębniony, a ivy-x.y.z.jar umieszczony w jednej z następujących lokalizacji:

  • $ANT_HOME / lib
  • $HOME/.ant / lib

Enabling ivy

Ivy jest zapakowany jako antlib , więc aby go włączyć, należy wykonać następujące czynności

1) Zadeklaruj przestrzeń nazw ivy na górze pliku kompilacji

<project ..... xmlns:ivy="antlib:org.apache.ivy.ant">

2) Dołącz ivy jar do jednego z katalogów biblioteki mrówek

Twój komunikat o błędzie wskazuje niektóre z możliwych lokalizacji dla antlibs:

This appears to be an antlib declaration. 
Action: Check that the implementing library exists in one of:
        -C:\Users\Simon\eclipse\plugins\org.apache.ant_1.8.2.v20120109-1030\lib
        -C:\Users\Simon\.ant\lib
        -a directory added on the command line with the -lib argument

Uwaga:

Nie jest to konieczne, ponieważ nie trzeba wykonywać zadania (jest to opcjonalne, jeśli chcesz umieścić Ivy jar w niestandardowym miejscu).]}

Jak bootstrap a build

Mimo że ivy jest podprojektem mrówek, z jakiegoś niewytłumaczalnego powodu ivy nie jest pakowana z mrówką....

Zwykle dołączam następujący cel w moich plikach budowania, aby skonfigurować nowy środowisko:

<target name="bootstrap" description="Used to install the ivy task jar">
    <mkdir dir="${user.home}/.ant/lib"/>
    <get dest="${user.home}/.ant/lib/ivy.jar" src="http://search.maven.org/remotecontent?filepath=org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar"/>
</target>
Pobiera ivy jar z Maven Central.

Ponieważ wszystkie inne zadania ANT można następnie pobrać za pomocą ivy, niewiele osób sprzeciwia się temu kawałkowi brzydoty na górze pliku kompilacji.

 49
Author: Mark O'Connor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-23 00:54:40

Jeśli nie możesz umieścić ivy libs w classpath for ant, musisz to zdefiniować samodzielnie:

<path id="ivy.lib.path">
    <fileset dir="path/to/dir/with/ivy/jar" includes="*.jar"/>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml"
         uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>

Tego fragmentu brakuje w samouczku pierwsze kroki, ale wymieniono go tutaj: http://ant.apache.org/ivy/history/2.2.0/ant.html

 11
Author: oers,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-25 09:02:47

Podczas uruchamiania zadania Ant, w classpath upewnij się, że ivy.słoik tam jest. W zakładce eclipse - > Run As - > Ant Build - > Edytuj konfigurację - > Classpath. Nawet jeśli Eclipse miałby bluszcz.słoik w domu mrówek, z jakiegoś powodu nie jest nazywany.

 4
Author: Smart Coder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-02 17:30:19

Miałem podobny problem na MacOSX (10.11.6 El Capitan). Zainstalowałem anti Ivyz menedżerem pakietów Brew.

Dodatkowym sposobem jest zdefiniowanie go ręcznie za pomocą opcji-lib, np.:

ant clean compile -lib /usr/local/Cellar/ivy/2.4.0/libexec/ivy-2.4.0.jar 
 0
Author: Christoph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-27 21:19:08

Nawet po dodaniu ivy jar do ant lib, nie został odebrany. Ponowne wybranie ANT_HOME w Preferences->Ant->Runtime spowoduje odświeżenie lib dir, a wszelkie dodane tam biblioteki zostaną usunięte.

 0
Author: manojmo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-14 10:43:05