Sollten Maven-Abhängigkeits-Versionsbereiche als veraltet gelten?

8

Da es in der offiziellen Dokumentation sehr schwierig ist, etwas über Abhängigkeitsbereiche zu finden (das beste, was ich mir vorstellen kann, ist Ссылка ), ich frage mich, ob sie immer noch als erstklassiger Bürger von Maven POMs betrachtet werden.

Ich denke, die meisten Leute würden zustimmen, dass sie sowieso eine schlechte Praxis sind, aber ich frage mich, warum es so schwer ist, etwas Offizielles darüber zu finden.

    
Kutzi 23.08.2011, 20:39
quelle

3 Antworten

7

Sie sind nicht in dem formellen Sinne veraltet, dass sie in einer zukünftigen Version entfernt werden. Aufgrund ihrer Beschränkungen (und des daraus folgenden Fehlens einer breiten Akzeptanz) sind sie jedoch nicht so nützlich wie ursprünglich beabsichtigt, und es ist auch unwahrscheinlich, dass sie Verbesserungen ohne ein signifikantes Umdenken erreichen werden.

Aus diesem Grund gibt es die Dokumentation nur in Form des Designdokuments - sie existieren, aber wichtige Anwendungsfälle wurden nie bis zu dem Punkt fertiggestellt, an dem ich sie generell verwenden würde.

Wenn Sie einen Anwendungsfall haben, der derzeit funktioniert und die Einschränkungen berücksichtigen kann, können Sie davon ausgehen, dass sie weiterhin für die vorhersehbare Zukunft funktionieren, aber darüber hinaus gibt es wenig zu tun.

    
Brett Porter 24.08.2011, 02:34
quelle
5

Ich weiß nicht, warum Sie meinen, dass Versionsbereiche nicht dokumentiert sind. Es gibt eine konkrete Zusammenfassung in der Maven Complete Reference Dokumentation.

Dennoch - ein großes Problem (meiner Meinung nach) ist, dass dokumentiert ist, dass "Auflösung von Abhängigkeitsbereichen nicht zu einem Snapshot (Entwicklungsversion) aufgelöst werden sollte, es sei denn, es ist als explizite Grenze enthalten." (der von Ihnen angegebene Link), aber das System verhält sich anders. Wenn Sie Versionsbereiche verwenden, erhalten Sie SNAPSHOT-Versionen, wenn sie in Ihrer Reichweite vorhanden sind ( MNG-3092 ). Die Diskussion, ob dies gewünscht wird oder nicht, ist noch nicht beendet.

Derzeit - wenn Sie Versionsbereiche verwenden - könnten Sie SNAPSHOT-Abhängigkeiten erhalten. Sie müssen also wirklich vorsichtig sein und entscheiden, ob dies gewünscht wird. Es könnte für Ihre eigenen entwickelten Abhängigkeiten nützlich sein, aber ich bezweifle, dass Sie es für Bibliotheken von Drittanbietern verwenden sollten.

    
FrVaBe 24.08.2011 07:19
quelle
-1

Versionsbereiche sind der einzige Grund, warum Maven immer noch nützlich ist. Selbst wenn man sie nicht benutzt, ist das eine schlechte Übung, da sie dich in die Katastrophe von Multi-Modul-Builds, nicht-funktionalen Eltern-Poms, Builds von 10 Minuten oder länger, schlecht strukturierten Projekten wie Spring, Hibernate und Wicket führt Argument-Podcast

Um Ihre Frage zu beantworten, sind sie nicht veraltet und werden in vielen Projekten erfolgreich verwendet (außer wenn Sonatype beschädigte Metadaten in Apache Maven Central erlaubt).

Wenn Sie ein wirklich gutes Beispiel für einen Build ohne Multi-Module (nur reactor.xml) wünschen, bei dem Versionsbereiche umfassend genutzt werden, sehen Sie sich den Sticky-Code (http://code.google.com/p/stickycode) an /)

    
Richard Vowles 30.04.2012 09:25
quelle