2012-11-21 17 views
5

我可以輕鬆創建一個用於編程portlet的Maven項目(例如使用原型)。但爲了部署這個項目到Liferay,我得趕緊走:如何使用Liferay和Maven高效編程portlet?

mvn package liferay:deploy

即使我改變只是一個簡單的JSP文件,我不得不重新部署整個portlet應用程序。有沒有辦法加快這個發展過程?

我不想使用Ant,因爲那樣我就不得不處理依賴和其他的東西。我真的很想使用Maven來開發Liferay portlet應用程序。

我試過JRebel的,但因爲包裝WAR文件它的魔力不工作:(

要重新創建這種情況:

  1. 創建從artifactId的Maven原型項目:Liferay的-portlet-原型
  2. 添加屬性的pom.xml:liferay.version,liferay.auto.deploy.dir
  3. 開始的Liferay
  4. MVN包的Liferay:部署 - >這將創造e WAR文件並將其部署到liferay自動部署目錄。
  5. 你想改變的東西每一次,你必須做MVN包的Liferay:部署

這是耗時的東西不僅僅是世界你好大。

據我所知,這應該是最好的做法。但是Liferay文檔在這個主題上很少見。有另一種方法嗎?

+0

您使用的是[Maven Liferay](http://www.liferay.com/web/mika.koivisto/blog/-/blogs/15470275)項目嗎? –

+0

是的,沒有。這些庫由Liferay Maven Plugin在Maven Repository內部使用。 –

回答

1

問題使用STS(SpringSource Tool Suite)和Liferay IDE的組合來解決。通過這種組合,根本不需要使用Liferay Maven插件。只需簡單地添加Liferay服務器,在這臺服務器上部署Maven應用程序,它都可以工作。

與JRebel結合使用是恕我直言最有效的解決方案。

0

您的應用程序可以打包成WAR,以便JRebel正常工作,沒有問題。你把rebel.xml配置文件放入WAR嗎?

+0

是的,我在classpath中有rebel.xml。我編輯了這個問題,這樣任何人都可以重新創建這種情況。 –

+0

你在classpath中有rebel.xml,這意味着它被打包在WAR中的WEB-INF/classes中,對吧?請使用-Drebel.log = true啓用JRebel日誌記錄,並將日誌發送給JRebel支持,我們將解決它。它可以是監視某個其他目錄的代理或版本指定錯誤。順便說一句,JRebel通常打印到標準輸出,它監視的目錄。 –