2012-11-21 12 views
5

Ich kann einfach ein Maven-Projekt für die Programmierung von Portlets (zum Beispiel mit Archetyp) erstellen. Aber um dieses Projekt zu Liferay zu implementieren, muß ich laufen:Wie können Portlets mit Liferay und Maven effizient programmiert werden?

mvn package liferay:deploy

Auch wenn ich nur eine einfache JSP-Datei ändern, ich habe die ganze Portlet-Anwendung erneut bereitstellen. Gibt es eine Möglichkeit, diesen Entwicklungsprozess zu beschleunigen?

Ich möchte nicht Ant verwenden, denn dann müsste ich mit Abhängigkeiten und anderen Dingen umgehen. Ich würde gerne Maven verwenden, um Liferay Portlet-Anwendungen zu entwickeln.

Ich versuchte JRebel, aber wegen der Verpackung zu WAR-Datei es Magie funktioniert nicht :(

diese Situation neu zu erstellen:

  1. Projekt Erstellen von Maven Urbild mit artifactId: liferay -portlet-Urbild
  2. Eigenschaften hinzufügen pom.xml: liferay.version, liferay.auto.deploy.dir
  3. starten Liferay
  4. mvn Paket liferay: deploy -> diese creat wird e eine WAR-Datei und stellen Sie sie im Verzeichnis für die automatische Bereitstellung von liveray bereit.
  5. Jedes Mal, wenn Sie etwas ändern wollen, müssen Sie mvn Paket liferay tun:

Dies ist zeitaufwendig auf etwas größer als nur Hallo Welt bereitstellen.

Soweit ich weiß, soll dies die beste Praxis sein. Aber die Liferay-Dokumentation ist zu diesem Thema spärlich. Gibt es eine andere Art und Weise?

+0

Verwenden Sie das [Maven Liferay] (http://www.liferay.com/web/mika.koivisto/blog/-/blogs/15470275) Projekt? –

+0

Ja und nein. Diese Bibliotheken werden intern von Maven Repository von Liferay Maven Plugin verwendet. –

Antwort

1

Problem gelöst durch Kombination von STS (SpringSource Tool Suite) und Liferay IDE. Bei dieser Kombination ist es nicht notwendig, das Liferay Maven Plugin zu verwenden. Einfach Liferay Server hinzufügen, Maven App auf diesem Server bereitstellen und alles funktioniert.

Mit dieser Kombination mit JRebel ist IMHO die effektivste Lösung.

0

Ihre Anwendung kann in WAR verpackt werden, damit JRebel funktioniert, kein Problem. Hast du die Konfigurationsdatei rebel.xml in den WAR gestellt?

+0

Ja, ich habe rebel.xml im Klassenpfad. Ich habe die Frage bearbeitet, damit jeder diese Situation wiederherstellen kann. –

+0

Sie haben rebel.xml in classpath, was bedeutet, dass es in WEB-INF/Klassen in der WAR verpackt ist, oder? Bitte aktivieren Sie die JRebel-Protokollierung mit dem Argument -DRebel.log = True VM und senden Sie das Protokoll an die JRebel-Unterstützung. Wir werden es herausfinden. Es ist entweder der Agent, der ein anderes Verzeichnis überwacht, oder ein versionsspezifischer Fehler. Übrigens druckt JRebel normalerweise nach stdout, welche Verzeichnisse es überwacht. –

Verwandte Themen