Ivy: Wie entferne ich transitive Abhängigkeiten?
Ich bin mit Efeu zur Verwaltung der Abhängigkeiten auf mein Projekt.
So weit, ich habe angegeben eine Abhängigkeit von Hibernate, servlet-api. Aber der hibernate-jar selbst hat eine Menge von Abhängigkeiten, die nicht unbedingt benötigt werden, wie jaas und jacc.
Wird dies ein show-stopper, weil die jaas-und jaac sind Sonne Bibliotheken und damit Ihre Lizenzen zu untersagen, Sie in das Maven-repos, also Ivy kann nicht finden Sie dort.
- Wie mache ich Ivy download Überwintern, aber nicht diese beiden ?
- Als bonus, wenn ich tatsächlich benötigt, diese heruntergeladen und Ihre Gläser von Sonne, in dem Ordner in meine Maschine würde Ivy look für Sie ?
InformationsquelleAutor der Frage Leonel | 2009-01-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie mache ich Ivy download Überwintern, aber nicht diese beiden?
Ivy tut dies mit dem, was es nennt, "Konfigurationen". Ihre
ivy.xml
darstellt Überwintern müssen, um verschiedene Konfigurationen für die Darstellung verschiedener Anwendungsfälle für hibernate. (Es gibt natürlich einige die Verwendung von hibernate, die nicht verlangen, jaas und jacc, aber anscheinend Sie don ' T nutzen, der Fall.)Hier ist die Dokumentation der Konfigurationen. Wenn Sie möchten, um die
ivy.xml
Sie für den Ruhezustand, ich kann Zeiger auf den Aufbau von Konfigurationen, um die spezifische Bibliotheken, die Sie wollen, entfernt.Wenn ich tatsächlich benötigt, diese heruntergeladen und Ihre Gläser von Sonne, in dem Ordner in meine Maschine würde Ivy look für Sie?
Die "Verzeichnisse" , ivy sieht in den für ivy-Dateien und Artefakte angegeben werden, indem die Liste der Resolver, die Sie verwenden. Die Liste der Resolver ist in den ivy-Einstellungen-Datei (normalerweise namens
ivysettings.xml
.) In der Regel werden diese nicht lokalen Verzeichnissen, aber remote-URLs. Es ist, jedoch, eine local-Datei-resolver-Typ, wird für diese Arbeit.Wenn Sie dies tun, werden Sie brauchen, um sowohl die ivy-Dateien und die Artefakte (jar), die jeweils mit dem Datei-Namen, die mit der Resolver-Muster. Details sind in der Dokumentation.
Hier ist ein Beispiel local-Datei-resolver von einer ivy-Einstellungen-Datei:
Beachten Sie auch, dass Sie benötigen, um Ihren Efeu Aufgaben auf die richtige Auflösung. Sie können dies tun, mit der resolver-Attribut auf die ant-tasks, oder mit der
defaultResolver
- Attribut auf diesettings
element in der ivy-Einstellungen-Datei.Hier ist die Dokumentation auf Resolver.
EDIT: Der OP gefunden, weniger Zeit intensive Abhilfe für seine spezifische ursprüngliche problem. Die "exclude" Kind-tag der dependency-tag hat den job für ihn:
InformationsquelleAutor der Antwort Jared
Weitere option für das herunterladen nicht alle Abhängigkeiten ist, deaktivieren Sie Sie mit der
transitive
Attribut. Also, wenn Sie wolltehibernate-core
aber keiner von seinen Abhängigkeiten, Sie könnten dies tun:InformationsquelleAutor der Antwort Jared Oberhaus
Surfen im web und blogs, fand ich die folgenden ivy-Einstellungen, um die Arbeit zu greifen jaas/jacc-und hibernate
Jboss ibibilio resolver ist, was hat den trick zu greifen JAAS/JAAC
Meine ivy.xml dann können Sie ziehen Sie Sie dann in mit
InformationsquelleAutor der Antwort
Zur Beantwortung Ihrer zweiten Teilfrage buchstäblichwas niemand bisher getan hat, "in welchen Ordner in meinem Rechner würde Ivy look für Gläser?" Das hängt davon ab. Vorausgesetzt, Sie haben sich nicht geändert, die Lage in ivysettings.xml oder eine andere Konfigurationsdatei für die JAAS,
diese wäre: (Benutzer-home -)/.ivy2/cache/javax.Sicherheit/jaas/Gläser. Wenn Ivy schon erfolglos versucht zu finden, JAAS in der Maven Central oder andere repo ' s, die Verzeichnis-Struktur sollte bereits vorhanden sein, für die meisten Teil, und alles, was Sie tun müssen, ist, erstellen Sie die "Gläser" - Verzeichnis und legen jaas-1.0.01.jar. Ivy wird nicht mehr beschweren sich über die fehlende Abhängigkeit in seiner nächsten Aufruf.
EDIT: Dann wieder, siehe die Diskussion unten, um zu sehen, überlegungen zu nicht es so machen.
((Benutzer-home -) C:/Users/(Benutzername) auf Windows 7).
InformationsquelleAutor der Antwort László van den Hoek