2012-11-21 6 views
5

Mogę łatwo utworzyć projekt Maven do programowania portletów (na przykład za pomocą archetypu). Jednak w celu wdrożenia tego projektu Liferay, muszę uruchomić:Jak skutecznie programować portlety przy użyciu Liferay i Maven?

mvn package liferay:deploy

Nawet jeśli zmienię tylko prosty plik JSP, mam przesunięcie całej aplikacji portletu. Czy istnieje sposób na przyspieszenie tego procesu rozwoju?

Nie chcę używać Anta, ponieważ wtedy musiałbym radzić sobie z zależnościami i innymi rzeczami. Naprawdę chciałbym użyć Mavena do opracowania aplikacji portletowych Liferay.

Próbowałem JRebel, ale ze względu na opakowania do wojny złożyć to magia nie działa :(

Aby ponownie utworzyć taką sytuację:

  1. Tworzenie projektu z maven archetyp z artifactId: Liferay -portlet-archetyp
  2. Dodaj ogłoszenie do pom.xml: liferay.version, liferay.auto.deploy.dir
  3. start Liferay
  4. pakiet
  5. mvn Liferay: wdrożenie -> to będzie creat e plik WAR i wdrożyć go do katalogu automatycznego wdrażania liferay.
  6. każdym razem, gdy chcesz coś zmienić, trzeba zrobić mvn package Liferay: wdrożenie

Jest to czasochłonne na coś większego niż tylko Hello World.

O ile mi wiadomo, ma to być najlepsza praktyka. Jednak dokumentacja Liferay jest rzadkością na ten temat. Czy istnieje inny sposób?

+0

Czy korzystasz z projektu [Maven Liferay] (http://www.liferay.com/web/mika.koivisto/blog/-/blogs/15470275)? –

+0

Tak i nie. Te biblioteki są używane wewnętrznie z repozytorium Maven przez Liferay Maven Plugin. –

Odpowiedz

1

Problem rozwiązany przy użyciu kombinacji STS (SpringSource Tool Suite) i Liferay IDE. Dzięki tej kombinacji nie jest konieczne używanie wtyczki Liferay Maven. Po prostu dodaj serwer Liferay, zainstaluj aplikację Maven na tym serwerze i wszystko działa.

Stosowanie tego połączenia z JRebel to najbardziej efektywne rozwiązanie IMHO.

0

Twoja aplikacja może zostać spakowana w WAR, aby JRebel działał, nie ma problemu. Czy umieściłeś plik konfiguracyjny rebel.xml w WAR?

+0

Tak, mam rebelic.xml w ścieżce klas. Zmieniłem to pytanie, aby ktokolwiek mógł odtworzyć tę sytuację. –

+0

Masz rebelic.xml w ścieżce klas, co oznacza, że ​​jest spakowany w WEB-INF/klasach w WAR, prawda? Włącz rejestrowanie JRebel za pomocą -Drebel.log = true argument VM i wyślij log do wsparcia JRebel, a my go sprawdzimy. Jest to agent monitorujący inny katalog lub błąd specyfikacji wersji. BTW, JRebel zwykle drukuje na stdout, które katalogi monitoruje. –