2010-01-02 2 views

Antwort

17

Ivy ist eine Ant-Erweiterung für externe Bibliotheken während des Entwicklungsprozesses der Verwaltung, so dass Sie einen Weg, um sie zu Ihrem Classpath hinzuzufügen, so dass sie in der Anwendung zu bauen Bündelung usw.

mit einigen Überschneidungen Es ist, was Maven tut, aber Ivy ist viel leichter (und macht nicht so viel).

+0

Ivy konkurriert mit Maven Ant Aufgaben (http://maven.apache.org/ant-tasks/index.html), aber sicherlich nicht mit Maven. –

+4

Um fair zu sein, ich habe nicht gesagt, dass es damit konkurrierte, ich sagte, dass es Überschneidungen damit gab. – skaffman

+0

Gut, Ivy ist eine Art "Überlappung", da es sich um einen Dependency-Handling-Mechanismus handelt. Aber trotzdem kann man sie nicht vergleichen. –

3

Ivy ist ein Abhängigkeitsmanager - er verwaltet und steuert die JAR-Dateien, von denen Ihr Projekt abhängig ist. Wenn Sie die JARs nicht haben, wird es standardmäßig (aus dem Maven 2-Repository), was die Einrichtung des Projekts viel einfacher machen kann.

+0

Außer, dass die meisten entfernten Efeu/Maven-Repos schrecklich lückenhaft und unvollständig sind. – skaffman

+2

@skaffman Fakten bitte? –

+0

@Pascal - meine Erfahrung stimmt mit @ skaffmans Behauptung überein. Als ich zum Beispiel anfing, Maven zu benutzen, hatte ich große Schwierigkeiten, die "richtigen" Versionen der J2EE api JARs zu finden, und ich gab es auf, OAIcat zu finden. Ich habe auch Probleme mit schlechten Abhängigkeiten, die Workarounds "ausgeschlossen" erfordern. Für mich überwiegen jedoch die Vorteile von Maven-ähnlichen Abhängigkeiten. –

4

Ivy ist ursprünglich eine Jayasoft.fr product, die zu dieser Zeit unter BSD-Lizenz war, aber der Kern von Ivy war immer das gleiche: Es ist ein Abhängigkeitsmanagement-Tool.

Ivys Beziehung zu Ant ist, dass es eine Ant-Erweiterung in dem Sinne ist, dass es durch Ant ist, aber es hängt nicht wirklich davon ab (über die offensichtlichen Teile hinaus). Ivy wurde am 11. Oktober 2007 durch einen Inkubationsprozess in ein Apache-Projekt unter Ant als Subprojekt eingebunden.

Sehr weit verbreitetes Missverständnis besteht darin, dass sie Ivy mit Maven als Ganzes vergleichen. Das funktioniert jedoch nicht wirklich, da Ivy nur auf agile Art und Weise Abhängigkeiten handhabt und sehr gut darin ist, mit simpler Konfiguration und weit automatisierter Unterstützung mit verschiedenen Build-Systemen etc. durch Ant, während Maven wirklich ein Build-System für sich ist. Persönliche Meinungen können und unterscheiden sich darin, was man am besten macht und das mehrere Stackoverflow/Google-Suchen alleine lohnt.

0

Ich glaube, diese bedeutende und nützliche Punkte hinzuzufügen:

  • Ivy Standalone von der Kommandozeile verwendet werden, ohne Ant können. Wenn Ihre CI-Umgebung keine Ant enthält, wird es Sie nicht davon abhalten, Ivy zu verwenden. Ja, die Integration mit Ant ist nett und bei weitem besser dokumentiert. Man könnte die Ant-Integrationsdokumentation jedoch auch auf die eigenständige Verwendung anwenden.
  • Ivy ist nicht nur für Java. Mein Team verwendet es erfolgreich, um Abhängigkeiten für ein ziemlich großes .NET-Projekt zu definieren (10 voneinander abhängige Pakete mit mehreren Versionen von jedem in der Produktion mit mehreren Upstream-Abhängigkeiten von Drittherstellern). Funktioniert ziemlich gut. Ich wünschte, die Dokumentation wäre ein bisschen klarer und voller.
  • Es gibt zusätzliche Vorteile, die Ivy für Build-Zeit bietet: Upstream- und Downstream-Build-Triggering.
Verwandte Themen