Come posso convincere Ivy a risolvere le dipendenze (incluse le dipendenze con changing="true"
) dalla cache locale quando sono offline/disconnessi?Risoluzione delle dipendenze di Apache Ivy quando è offline/disconnesso?
Sto lavorando a un progetto open source basato su Java che utilizza Apache Ivy per risolvere e scaricare le dipendenze di terze parti. Il build.xml
del progetto ha un target di formica denominato resolve
che scarica Ivy (se necessario) e quindi utilizza Ivy per recuperare i jar necessari.
Tutto funziona alla grande quando online. Tuttavia, senza l'accesso a Internet, ant resolve
ha esito negativo anche se i jar necessari si trovano nella cache Ivy locale (~/.ivy2/cache
). Sembra che Ivy stia cercando di connettersi al repository Maven per aggiornare le dipendenze changing="true"
.
L'errore che ottengo è simile al seguente:
[ivy:retrieve] You probably access the destination server through a proxy server that is not well configured.
[ivy:retrieve] You probably access the destination server through a proxy server that is not well configured.
[ivy:retrieve]
[ivy:retrieve] :: problems summary ::
[ivy:retrieve] :::: WARNINGS
[ivy:retrieve] Host repo.example.com not found. url=http://repo.example.com/exampleorg/examplename/examplerev/ivys/ivy.xml
[ivy:retrieve] Host repo.example.com not found. url=http://repo.example.com/exampleorg/examplename/examplerev/jars/examplename.jar
[ivy:retrieve] module not found: exampleorg#examplename;examplerev
[ivy:retrieve] ==== local: tried
[ivy:retrieve] ~/.ivy2/local/exampleorg/examplename/examplerev/ivys/ivy.xml
[ivy:retrieve] -- artifact exampleorg#examplename;examplerev!examplename.jar:
[ivy:retrieve] ~/.ivy2/local/exampleorg/examplename/examplerev/jars/examplename.jar
[ivy:retrieve] ==== shared: tried
[ivy:retrieve] ~/.ivy2/shared/exampleorg/examplename/examplerev/ivys/ivy.xml
[ivy:retrieve] -- artifact exampleorg#examplename;examplerev!examplename.jar:
[ivy:retrieve] ~/.ivy2/shared/exampleorg/examplename/examplerev/jars/examplename.jar
[ivy:retrieve] ==== repo: tried
[ivy:retrieve] http://repo.example.com/exampleorg/examplename/examplerev/ivys/ivy.xml
[ivy:retrieve] -- artifact exampleorg#examplename;examplerev!examplename.jar:
[ivy:retrieve] http://repo.example.com/exampleorg/examplename/examplerev/jars/examplename.jar
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :: UNRESOLVED DEPENDENCIES ::
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve] :: exampleorg#examplename;examplerev: not found
[ivy:retrieve] ::::::::::::::::::::::::::::::::::::::::::::::
[ivy:retrieve]
[ivy:retrieve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
BUILD FAILED
~/exampleproj/build.xml:123: impossible to resolve dependencies:
resolve failed - see output for details
Esecuzione ant -verbose resolve
come suggerito dalle stampe di avvertimento la seguente riga nell'output:
[ivy:retrieve] don't use cache for exampleorg#examplename;examplerev: changing=true
Come posso ottenere Ivy per risolvere changing="true"
dipendenze dalla cache quando è offline, ma continuare a interrogare il repository ogni build quando è online?
Ho dato una risposta a questo in questa domanda: http://stackoverflow.com/questions/6971517/how-do-i-tell-ivy4r-to-stay-offline – oers
Questa è una seconda domanda. Il primo è stato risposto –
@ Mark: Hai ragione. Ho modificato la domanda per rimuovere "come impostare in modo condizionale" ivy.cache.ttl.default = eternal'? " parte perché quello è un problema separato. Ma la mia domanda iniziale - come risolvere le dipendenze quando offline - è ancora senza risposta. –