Ich verwende derzeit IBM Rational Application Development (IBM Eclipse-Distribution) für die Portlet-Entwicklung und habe ein kleines Problem mit der Maven-Integration.
Hier ist die Situation:
1) IBM RAD kann ein Portlet direkt von sich aus bereitstellen (RUN / DEBUG)
In diesem Fall verwende ich Maven generated WAR überhaupt nicht, da IBM RAD die WAR automatisch automatisch zu erstellen scheint und sie an IBM WebSphere Portal sendet. Was bisher keine große Sache ist.
2) Maven-Abhängigkeiten werden nicht in das Verzeichnis WebContent / WEB-INF / lib
kopiertIBM hat eine eigene Verzeichnisstruktur: WebContent / WEB-INF und WebContent / META-INF. Wenn ich pom.xml aktualisiert habe, um neue Abhängigkeiten einzubauen, werden diese JARS nicht in das Verzeichnis WebContent / WEB-INF / lib kopiert, daher werden diese Bibliotheken nicht einbezogen, wenn ich das Portlet ausführen / DEBUG machen wollte.
Frage:
Gibt es eine Möglichkeit, die neuen JARs automatisch in den Ordner WebContent / WEB-INF / lib zu kopieren, sobald ich die Datei pom.xml aktualisiert habe? (Wenn ja, in welchem Lebenszyklus sollte das sein?)
Wenn es für Frage Nr. 1 keine perfekte Lösung gibt, macht es mir nichts aus, wenn dieser Schritt in der Kompilierung / dem Ziel "mvn install" enthalten ist.
Verwenden Sie vorzugsweise kein ant-task, sondern stattdessen ein eigenes Kopierprogramm, falls vorhanden.
Wenn jemand Vorschläge zur Integration von Maven und IBM RAD für die WebSphere Portlet-Entwicklung hat, können Sie weitere Antworten hinzufügen.
Danke
Hier ist ein Maven 2 pom.xml-Skelett, das ich aus einem alten RAD-Projekt ausgewählt habe:
%Vor%Dies wurde auf die von RAD erstellte Verzeichnisstruktur angewendet (Version 7.5, Ausrichtung auf Portal 6.5.x auf WAS 7). Dies ist nicht die einzige Art und Weise und ich bin mir sicher, dass der Pom verbessert werden könnte, aber es hat seinen Zweck erfüllt. Fügen Sie Ihre Abhängigkeiten entsprechend hinzu.
Ich hatte die gleiche Frage und Probleme bei der Integration von Maven und RAD. Ich verwende RAD 8 mit m2e und versuche, Portlets für WebSphere Portal 7 automatisch bereitzustellen / zu debuggen.
Zunächst zu Gorkems Kommentar:
Ich bin nicht sicher, ob dies für IBM RAD funktioniert, aber mit der Eclipse-WTP können Sie die Deployment-Assembly-Teile aus den Projekteigenschaften definieren.
Dies funktioniert in RAD. Ich habe die Deployment-Assembly meines Projekts so eingerichtet, dass sie der WebSphere-Buildstruktur entspricht, und verschiebe meine Maven-Abhängigkeiten in den Ordner WEB-INF \ lib (Projekt -> Eigenschaften -> Assembly Assembly -> Hinzufügen -> Java-Buildpfad-Einträge - & gt; ; Maven-Abhängigkeiten).
Diese Konfiguration hat es mir ermöglicht, den Krieg erfolgreich zu erstellen und ich kann die generierte EAR-Datei von RAD exportieren und sie manuell auf meinem lokalen Server bereitstellen. Die Optionen zum automatischen Bereitstellen und Ausführen auf dem Server funktionieren jedoch nicht alleine. Aus irgendeinem Grund werden alle transitiven Abhängigkeiten (portlet-api, servlet-api usw.) in WebSphere implementiert, was zu Konflikten und Explosionen führt.
Daher habe ich die von McDowell vorgeschlagene Pom-Lösung mit begrenztem Erfolg ausprobiert - sie würde weder meine Tests kompilieren noch korrekt ausführen, obwohl ich sie nach dem Entfernen der Tests erfolgreich von RAD bereitgestellt hatte. Ich arbeite von seinem Pom, um Tests mit einzubauen und werde meine Ergebnisse hier posten, wenn ich es funktioniere.
Ich fand auch diesen Thread , der enthält ein Link zu einem IBM-Dokument 2010 zum "offiziellen" Möglichkeit, Maven und RAD zu integrieren. Ich arbeite daran und werde sehen, welche Lösung meinen Bedürfnissen besser entspricht. Auch wenn ich es funktioniere, werde ich hier mehr Infos posten.
Update 21.11.2011
IBM hat ein aktualisiertes Dokument für die Maven / RAD-Integration erstellt. Sie finden es hier . Ich habe es durchgemacht und es ist ziemlich gut gemacht. Es ist Schritt für Schritt mit Screenshots und ein wenig Hintergrund auf Maven, M2eclipse und WTP. Es gibt immer noch ein paar Belästigungen, die Chuck in der Arbeit beschreibt, aber am Ende hat es unserem Team ermöglicht, Maven in einer WebSphere Portal-Umgebung einzusetzen, ohne Maven-Konventionen aufzugeben. Hoffentlich finden andere es nützlich.