2009-04-24 7 views

Antwort

15

Die Standard-Plugin-Versionen werden vom Super POM geerbt, und Sie können sie mit mvn help:effective-pom überprüfen.

Wenn Sie die Version zur Verfügung gestellt, außer Kraft zu setzen, fügen Sie diese zu Ihrem POM:

<project> 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-ear-plugin</artifactId> 
     <version>2.3.1</version> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

Ersetzen die Version mit dem, was Sie brauchen.

+0

Wie sieht es mit Plugins aus, die von der Kommandozeile ohne POM verwendet werden, wie zum Beispiel maven-install-plugin? Zum Beispiel habe ich versucht, ein Glas in meinem lokalen Repository zu installieren, indem ich folgende Schritte befolge: https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html Im letzten Absatz erwähnen sie a coole Funktion von maven-install-plugin Version 2.5, aber wenn ich den Befehl ausführe, verwendet maven-3.3.9 die Version 2.4 des Plugins, obwohl ich auch Version 2.5.2 im Repo habe. Ich habe sogar versucht, 2.4 aus meinem Repo zu löschen, aber Maven hat es erneut heruntergeladen. Wo kann ich es konfigurieren? –

+0

Ok, ich habe die Antwort auf meine Frage hier gefunden: http: // stackoverflow.com/questions/25155639/how-do-i-force-maven-zu-verwenden-maven-install-plugin-version-2-5 –

2

Einige Maven-Plugins sind auf Maven-Versionen beschränkt. Zum Beispiel verwenden in der Regel Projekte in der Umgebung Maven 2.0.4, das auf das War-Plugin 2.0.2 beschränkt ist - das funktioniert mit Overlays. Das 2.1-Alpha, was auch immer Maven 2.0.9 benutzt, tut das nicht - also mussten wir manuell runterstufen. Maven wird, sofern nicht anders angegeben, versuchen, die neueste Version eines Plugins zu verwenden, die seiner Version entspricht.

8

Wie die Version eines Plugins ausgewählt wird, zusammen mit der Diskussion über die Plugin-Versionen im Superpom wird detailliert behandelt here.

Eigentlich ist die aktuell ausgewählte Antwort nicht ganz richtig. Es sollte

<project> 
    <build> 
    <pluginManagement> 
    <plugins> 
     <plugin> 
     <artifactId>maven-ear-plugin</artifactId> 
     <version>2.3.1</version> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
    </build> 
</project> 

sein, die ich erklärte, warum here.

„Der reguläre Plugins Abschnitt ermöglicht es auch die Version und Standardkonfiguration festgelegt werden, und dies ist, wo die Verwirrung liegt es technisch gültig das definieren, Plugin-Version und Standard-Konfiguration hier, aber ich finde es einfacher, den Pom zu growen, wenn Sie folgende Richtlinie befolgen:

Wenn der Plugin-Block nicht eine Ausführung definiert (und damit verbindliche Maven, etwas im Lebenszyklus zu tun), setzen Sie diesen Block in pluginManagement "

+0

ersten link ist gebrochen – sergtk

+0

der link ist fest –

+0

Sie sollten die Informationen (oder um zumindest eine Zusammenfassung) der Links, wie in der Hilfe angegeben, "Zitiere immer den relevantesten Teil eines wichtigen Links, falls die Zielseite nicht erreichbar ist oder dauerhaft offline geschaltet wird." – PhoneixS

36

Obwohl dies bereits die "genehmigte Antwort" erhalten hat, stellt sich heraus, dass es diese AWESOME versions plugin gibt, die das nie endende Versionsverwaltungsproblem behandelt.

Für die faul Leute sind hier einige seiner Ziele:

  • Versionen: Anzeige Abhängigkeit-Updates scannt ein Abhängigkeit des Projektes und erstellt einen Bericht dieser Abhängigkeiten, die neueren Versionen zur Verfügung hat.
  • Versionen: display-plugin-updates scannt die Plugins eines Projekts und erstellt einen Bericht über diese Plugins, für die neuere Versionen verfügbar sind.
  • Versionen: display-property-updates scannt ein Projekt und erstellt einen Bericht der Eigenschaften, die zur Steuerung von Artefaktversionen verwendet werden und welche Eigenschaften neuere Versionen haben.
  • Versionen: update-parent aktualisiert den übergeordneten Abschnitt eines Projekts, sodass es auf die neueste verfügbare Version verweist. Wenn Sie beispielsweise ein Unternehmens-Root-POM verwenden, kann dieses Ziel hilfreich sein, wenn Sie sicherstellen müssen, dass Sie die neueste Version des Unternehmens-Root-POM verwenden.
  • Versionen: update-properties aktualisiert in einem Projekt definierte Eigenschaften, sodass sie der neuesten verfügbaren Version bestimmter Abhängigkeiten entsprechen. Dies kann nützlich sein, wenn eine Reihe von Abhängigkeiten alle für eine Version gesperrt sein müssen.
  • Versionen: update-child-modules aktualisiert den übergeordneten Abschnitt der untergeordneten Module eines Projekts, sodass die Version der Version des aktuellen Projekts entspricht. Wenn Sie beispielsweise ein Aggregator-Pom haben, das auch das übergeordnete Element für die zusammengeführten Projekte ist und die untergeordneten und übergeordneten Versionen nicht mehr synchron sind, kann dieses Mojo helfen, die Versionen der untergeordneten Module zu reparieren. (Beachten Sie, dass Sie möglicherweise Maven mit der Option -N aufrufen müssen, um dieses Ziel zu erreichen, wenn Ihr Projekt so fehlerhaft ist, dass es aufgrund der falschen Übereinstimmung der Version nicht erstellt werden kann).
  • Versionen: lock-snapshots durchsucht den POM nach allen -SNAPSHOT-Versionen und ersetzt sie durch die aktuelle Zeitstempelversion des -SNAPSHOT, z. -20090327.172306-4
  • Versionen: Unlock-Snapshots Durchsucht den Pom nach allen Timestamp-gesperrten Snapshot-Versionen und ersetzt sie durch -SNAPSHOT.
  • Versionen: set kann verwendet werden, um die Projektversion über die Befehlszeile festzulegen.
  • Versionen: use-releases durchsucht den POM nach allen freigegebenen -SNAPSHOT-Versionen und ersetzt sie durch die entsprechende Release-Version.
  • Versionen: Use-next-releases Durchsucht den POM nach allen nicht-SNAPSHOT-Versionen, die eine neuere Version waren, und ersetzt sie durch die nächste Release-Version.
  • Versionen: Use-neuste Versionen Durchsucht das POM nach allen nicht-SNAPSHOT-Versionen, die eine neuere Version waren, und ersetzt sie durch die neueste Version.
  • Versionen: use-next-snapshots Durchsucht den POM nach allen Nicht-SNAPSHOT-Versionen, die eine neuere -SNAPSHOT-Version waren und ersetzt sie durch die nächste -SNAPSHOT-Version.
  • Versionen: use-latest-snapshots Durchsucht den POM nach allen Nicht-SNAPSHOT-Versionen, die eine neuere -SNAPSHOT-Version waren und ersetzt sie durch die neueste -SNAPSHOT-Version.
  • Versionen: use-next-versions Durchsucht den POM nach allen Versionen, die eine neuere Version waren und ersetzt sie durch die nächste Version.
  • Versionen: use-neuste Versionen Durchsucht die POM nach allen Versionen, die eine neuere Version waren und ersetzt sie durch die neueste Version.
+0

Danke @Pat für das Teilen der Informationen über dieses großartige Maven Plugin! – kiwifrog

Verwandte Themen