2013-03-22 6 views
44

Ich weiß, dass dies eine komplizierte Frage ist, aber ich würde gerne wissen, welche besser im Falle eines Systems ist, dass es bereits in Produktion ist, mit vielen Bugs und wirklich schlechtem Design überhaupt. Ein wirklich Chaos.Maven oder Efeu? Welcher ist besser mit einem System, das bereits in Produktion ist? Und die anderen Unterschiede?

Eigentlich frage ich das, weil ich dieses Projekt bereits zu Maven umwandele und ich habe eine Menge Probleme. Ich musste die Ordnerstruktur anpassen, ein schreckliches Framework aus dem Unternehmen aus dem Projekt zu trennen (es wurde in eine jar lib konvertiert), reparieren eine Menge von Details, die das Projekt die ganze Zeit brach, konfigurieren Sie die POM.xml zu machen alles, was Ant bereits getan hat und die libs, die wirklich in der Anwendung verwendet werden, als ihre Versionen entdecken (ein großer Teil der Bibliotheken wurde umbenannt ohne die Versionsnummer und die Manifest-Datei war leer).

Nun, es war wirklich eine Hölle. Ich wurde während dieser Aufgabe verrückt und die Frage, die mir die ganze Zeit folgte, war "Und wenn ich es zu Ivy umwandelte? Wäre es einfacher?".

Ich habe nie mit Ivy gearbeitet, aber da ich weiß, dass es mit Ant funktioniert, ist es einfacher, Maven das Projekt anzupassen. Auf der anderen Seite, Maven ist es viel mehr überall verwendet das Wort (Bin ich falsch?) Und das sollte einen Grund haben!

So gibt es es meine Fragen:

  • Integration mit Jenkins/Hudson: Mit Ivy es wie mit Maven so einfach ist?
  • Sonar-Plugin: Die gleiche Frage oben. Die Integration ist einfach?
  • Plugin für Eclipse: Dies ist ein sehr schwacher Punkt von Maven. Das Plugin ist schrecklich, aber ich kenne die Efeu nicht.
  • Implementieren Sie den Prozess: Sobald alles konfiguriert ist, bereitstellen und veröffentlichen Sie das Projekt mit Maven ist es sehr einfach. Und mit Ivy?
  • Umwandlung: Nun, meine Erfahrung bei der Umwandlung eines Projekts nach Maven war schrecklich, aber das System hat nicht geholfen. Die Option, die ich hatte, war, dass Maven es für neue Projekte, Projekte, die mit Maven arbeiten, erstaunlich ist, seit es erstellt wurde, aber keine gute Wahl, wenn Sie ein großes und unorganisiertes Projekt haben. Liege ich falsch?
  • Plugins: Es ist eine Menge von Plugin in POM.xml konfiguriert werden. Gibt es so viele Möglichkeiten für Ivy?
  • Popularität: Welche ist beliebter? Welcher ist mehr benutzt und warum?

Nun, es ist das. Vielen Dank!

+0

Sie sollten die Popularität ignorieren. Sowohl Maven als auch Efeu werden gut unterstützt :) – Jayan

+0

Es gibt zu viele Vergleiche. Ich hoffe, sie können Ihnen eine Idee geben. http://stackoverflow.com/questions/318804/maven-ori-ivy-for-managing-dependencies-from-ant http://java.dzone.com/articles/maven-vs-ivy-numbers http: // docs.codehaus.org/display/MAVEN/Feature+Comparison http://ant.apache.org/ivy/m2comparison.html http://www.google.com/trends/explore#q=apache%20maven,%20apache % 20ivy –

+1

Wir haben die selbe Entscheidung im letzten Jahr durchgemacht und entschieden uns für Ant + Ivy. Wenn wir von Null anfangen würden, wäre Maven wahrscheinlich die Wahl. Sie werden wahrscheinlich keine Plugins für Ivy benötigen. Ein Nachteil: Community-Hilfe bei Problemen zu bekommen, ist für Ivy viel schwieriger, weil die Community so viel kleiner ist. Schauen Sie sich die Verzögerungen in den Antworten (und Nicht-Antworten) zu Fragen dazu hier auf StackOverflow an, um zu sehen, was ich meine. –

Antwort

63

Lesen Sie zuerst die Ivy/Maven comparison von der Ivy-Website. Die wichtigsten Informationen:

Erstens ist der wichtigste Unterschied, dass sie nicht die gleiche Art von Werkzeugen sind. Apache Maven ist ein Softwareprojektmanagement- und -verstehenswerkzeug, während Apache Ivy nur ein Abhängigkeitsverwaltungstool ist, hoch integriert mit Apache Ant ™, dem beliebten Build-Management-Tool. Vielleicht würde ein interessanter Vergleich Apache Ant + Ivy vs Apache Maven vergleichen. Dies geht jedoch über den Rahmen dieser Seite hinaus, die sich ausschließlich auf das Abhängigkeitsmanagement konzentriert.

Ivy fügt Dependency Management-Funktionalität zu Ant, so wirklich die Frage in Bezug auf was System bauen Sie verwenden entweder:

  • Verwendung Ivy/Ant
  • Migrate Maven

Wenn Ihr Build bereits mit Ant ist, wird Ivy ein einfacher Übergang sein, da Ihre Build-Skripte nicht in ein anderes Build-System portiert werden müssen.

Wenn Sie sich entscheiden, zu Maven zu wechseln, wird es mehr Aufwand erfordern, da Sie Ihre Build-Skripts neu schreiben und alles mazern sowie das Abhängigkeitsmanagement konfigurieren müssen.

Es ist auch einfacher, Ihre Abhängigkeitsverwaltung von Ivy/Ant nach Maven zu portieren, wenn Sie sich jemals dafür entscheiden, in diese Richtung zu gehen. Ivy Dependency Management wäre also ein gutes Sprungbrett für eine Maven-Konfiguration.

+0

Wirklich danke für die Erklärungen! – Pmt

+1

@PimentaDev. [Dieser Link bietet einen sehr guten und fairen Vergleich über beide.] (Http://leshazlewood.com/2010/01/13/maven-2-vs-antivy-revisited/) –

+0

Du bist mein Retter @prunge! – pratnala