2012-11-21 2 views
5

프로그래밍 용 포틀릿 (예 : archetype 사용)을위한 Maven 프로젝트를 쉽게 만들 수 있습니다. 그러나하는 Liferay이 프로젝트를 배포하기 위해, 나는 실행해야합니다 :Liferay 및 Maven을 사용하여 포틀릿을 효율적으로 프로그래밍하는 방법은 무엇입니까?

mvn package liferay:deploy

을 그냥 간단한 JSP 파일을 변경하더라도, 나는 전체 포틀릿 응용 프로그램을 다시 배포해야합니다. 이 개발 프로세스의 속도를 높일 수있는 방법이 있습니까?

Ant를 사용하고 싶지 않습니다. 종속성 및 기타 문제를 처리해야하기 때문입니다. Maven을 사용하여 Liferay 포틀릿 애플리케이션을 개발하고 싶습니다.

나는 JRebel을 시도했지만 때문에 WAR에 포장이 작동하지 않습니다 :(

가이 상황을 다시 만드는 마술 파일 :

  1. 은 artifactId를 가진 받는다는 전형에서 프로젝트 만들기를 :하는 Liferay -portlet-원형은
  2. 의 pom.xml에 속성을 추가 liferay.version을
  3. 시작하는 Liferay liferay.auto.deploy.dir
  4. MVN 패키지을 Liferay :가 배포하는 ->이 creat에합니다 WAR 파일을 만들어 liferay auto deploy 디렉토리에 배포하십시오.
  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과 함께 사용하면 IMHO가 가장 효과적인 솔루션입니다.

0

응용 프로그램을 JRebel 용 WAR 패키지로 묶어서 문제없이 사용할 수 있습니다. rebel.xml 구성 파일을 WAR에 넣었습니까?

+0

예, classpath에 rebel.xml이 있습니다. 나는 누군가가이 상황을 재현 할 수 있도록 질문을 편집했다. –

+0

classpath에 rebel.xml이 있습니다. 즉, WAR의 WEB-INF/classes에 패키지되어 있습니다. -Drebel.log = true VM 인수를 사용하여 JRebel 로깅을 활성화하고 로그를 JRebel 지원팀에 보내면 알 수 있습니다. 다른 디렉토리를 모니터링하는 에이전트 또는 버전을 지정하는 버그입니다. BTW, JRebel 일반적으로 어떤 디렉터리를 모니터링하는 stdout 인쇄합니다. –

관련 문제