W jaki sposób mogę uzyskać Ivy, aby rozwiązać zależności (w tym zależności z changing="true"
) z lokalnej pamięci podręcznej, gdy jest offline/odłączony?Rozwiązywanie zależności Apache Ivy w trybie offline/rozłączonym?
Pracuję nad opartym na Javie projektem open-source, który wykorzystuje Apache Ivy do rozwiązywania i pobierania zależności od innych podmiotów. Projekt build.xml
ma mrówkę o nazwie resolve
, która pobiera Ivy (w razie potrzeby), a następnie wykorzystuje Ivy do pobrania wymaganych słoików.
Wszystko działa doskonale w trybie online. Jednak bez dostępu do Internetu, ant resolve
kończy się niepowodzeniem, nawet jeśli wymagane słoiki znajdują się w lokalnej pamięci podręcznej bluszczu (~/.ivy2/cache
). Wygląda na to, że Ivy próbuje połączyć się z repozytorium Maven, aby odświeżyć zależności changing="true"
.
Błąd pojawia się podobny do następującego:
[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
Running ant -verbose resolve
jak sugeruje odcisków ostrzegawczych następujący wiersz na wyjściu:
[ivy:retrieve] don't use cache for exampleorg#examplename;examplerev: changing=true
Jak mogę uzyskać Ivy rozwiązać changing="true"
zależności od pamięci podręcznej w trybie offline, ale nadal pytaj repozytorium o każdą kompilację w trybie online?
Dałem odpowiedź na to w to pytanie: http://stackoverflow.com/questions/6971517/how-do-i-tell-ivy4r-to-stay-offline – oers
To drugie pytanie. Odpowiedź na pierwszą odpowiedź: –
@ Mark: Masz rację. Edytowałem pytanie, aby usunąć "jak warunkowo ustawić" ivy.cache.ttl.default = eternal'? " część, ponieważ jest to osobny problem. Ale moje pierwotne pytanie - jak rozwiązywać zależności w trybie offline - wciąż pozostaje bez odpowiedzi. –