2012-10-01 10 views
23

Eventuali duplicati:
Ivy fails to resolve a dependancy, unable to find causeMancata destinazione della formica: problema Antlib o Ivy?

Sto cercando di eseguire l'attività seguente build (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> 

Quando eseguo ant -buildfile build.xml initIvy ottengo il seguente output :

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 

Quando vado a $ {ANT_HOME}/lib, non vedo nessun JAR etichettato "antlib * .jar".

Così sto indovinando ho scaricato una versione di Ant che non includesse Antlib, e ora che sto usando Ivy (che utilizza Antlib), la build sta soffocando?

Se si tratta di un problema di Antlib, quindi credo che voglio una delle distribuzioni disponibili here. In tal caso, qualcuno può confermare quale usare (che contiene solo Antlib e non altro) e confermare la procedura per installarlo; vale a dire, è semplice come mettere il JAR corretto in $ {ANT_HOME}/lib? Etc.

Se questo è un problema di Ivy, allora qualcuno può indicarmi la direzione giusta su cosa potrebbe succedere?

E se questo non è né Antlib né Ivy, idem per la domanda direttamente sopra. Grazie in anticipo!

risposta

55

penso che si potrebbe mancare libreria Apache Ivy. Scaricalo da qui - apache ivy Copia il jar nella directory ant lib.

per esempio (i numeri di versione cambiamento a seconda dei casi):

  1. scaricare e installare ANT (per esempio, C:\Apps\Tools\apache-ant-1.9.7).
  2. Scaricare ed estratto di edera (per esempio, C:\Users\UserName\Downloads\apache-ivy-2.4.0)
  3. Copia C:\Users\UserName\Downloads\apache-ivy-2.4.0\ivy-2.4.0.jar in C:\Apps\Tools\apache-ant-1.9.7\lib.

Ant è configurato per utilizzare Ivy.

+0

Dang - era così. Avevo appena copiato l'Ivy lib JAR, dimenticando di copiare Ivy JAR. Solo per curiosità, che cosa ti ha dato l'idea (giusta)? Sto solo cercando di imparare così la prossima volta posso diagnosticare il problema da solo! Grazie ancora! – IAmYourFaja

+3

@ 4herpsand7derpsago [antlib] (https://ant.apache.org/manual/Types/antlib.html) è un termine generico nella formica e non uno strumento separato. Se si ottiene "Impossibile caricare le definizioni da risorsa org/apache/edera/ant/antlib.xml. Non è stato trovato" "allora vuol dire mezzi, che non v'è alcun file jar nel percorso di classe, che contiene e" org /apache/ivy/ant/antlib.xml" E perché questo file è parte del ivy.xml si sa che il lib manca – oers

+5

Un modo più comoda è quella di utilizzare il [Ivy Eclipse Update Site] (http:..//www.apache.org/dist/ant/ivyde/updatesite) - installare sia "Apache Ivy" -Libs (Apache Ivy e Apache ant Ivy Taks) "la directory lib formica" – teclis

Problemi correlati