2011-09-28 4 views
2

최근에 GWT 2.4 응용 프로그램을 두 개의 maven 모듈로 분할했습니다 : 도메인webapp. 도메인 모듈에는 도메인 클래스가 들어 있고 webapp에는 다른 모든 GWT 관련 항목이 들어 있습니다. Webapp도메인에 따라 다릅니다. 여기에 설명 된대로다중 모듈 maven gwt 프로젝트 - 호스트 모드의 종속성 문제가 발생했습니다.

모두 거의 동일합니다 http://mojo.codehaus.org/gwt-maven-plugin/user-guide/multiproject.html

나는 (원자로에서) 실행하면 :

mvn clean package 

받는다는 적절히 응용 프로그램의 WAR을 빌드 : 먼저 다음, 웹 애플리케이션을 도메인을 컴파일, 다음은 tomcat에 배포 할 수있는 war 파일을 만들고 정상적으로 작동합니다. 내가 호스트 모드에서 응용 프로그램을 실행하려고하면 그러나 :

mvn gwt:run 

받는다는 내 로컬 저장소와 원격 저장소에 도메인 모듈에 의존성을 해결하기 위해 시도합니다. 로컬 리포지토리에서 삭제 했으므로 maven에서 찾을 수 없으며 빌드 (호스팅 된 모드)가 실패합니다. 물론 도메인 모듈을 로컬 Repo에 먼저 설치할 수는 있지만 더러운 해결 방법과 같은 냄새가납니다. 도메 인은 이전에 빌드 된 도메인 아티팩트로 작업하는 대신 호스트 모드가 로컬 레포에서 가져온 이전 (오래된 버전)으로 실행되도록 로컬 maven 리포지토리에서 의도적으로 제거되었습니다. mvn clean package 완료 후 도메인 모듈, 내 로컬 저장소에 설치 한 경우

웹 애플리케이션 대상 디렉토리 도메인 JAR의 최신 버전과 전쟁을 폭발 포함되어 있습니다. gwt:run을 실행하면 도메인 아티팩트의 새 버전이 로컬 repo에서 가져온 오래된 아티팩트로 바뀝니다 (변경 사항을 볼 수 있음)!

어떻게 가능합니까? gwt maven plugin의 버그입니까? 이상한 플러그인 동작을 피할 수있는 방법이 있습니까?

+0

Maven이 작동하는 방식은 간단하지 않습니까? _reactor_ 모듈을 사용하지 않는 한, 로컬 저장소에 의존성을 설치해야합니다. –

+0

@ 토마스하지만 GWT WAR 패키지를 만들면 gwt에서 maven 플러그인을 기대할 수 있습니다. 저장소에서 라이브러리를 가져 오는 대신이 패키지에 포함 된 사용 라이브러리 (최신 버전)를 실행하십시오 ('mvn 패키지' 레포 버전이 오래되었을 수 있음). 나는 webapp WAR에서 도메인 라이브러리를 가져 오는 것을 의미하는 것이 아니라 새로 빌드 한 도메인 패키지를 사용하는 것입니다. 그것은 나를 위해 합리적으로 들리지만 어쩌면 내가 틀 렸습니다. –

+0

Maven에게 서브 모듈에서 목표를 실행하도록 지시 할 수는 있지만 리포지토리에서 서브 블록을 해결하지 않고 "형제"서브 모듈의 종속성을 사용하면 좋을 것입니다. 나는 불행하게도 그것을하는 법을 발견하지 못했고, 나는 그것이 단순히 불가능하다는 것을 매우 의심하고, 사람들은 하루 종일'mvn install'을한다. –

답변

1

이 내용이 당신을위한 해결책 일 수 있습니까? http://mojo.codehaus.org/gwt-maven-plugin/user-guide/productivity.html 나를 위해 그것은 작동합니다. 나는 다른 모듈도 가지고있다. 링크를 통해 도메인 모듈을 변경하고 호스팅 된 모드를 다시 시작할 수 있습니다. 모든 변경에 대해 작동하지 않습니다.

관련 문제