2013-01-03 3 views
1

Java EE 환경에서 여러 JSP 파일을 포함하는 웹 페이지를 만들었습니다. 포함 된 JSP 중 하나가 header.jsp입니다. Stackoverflow에서 사용하는 것과 매우 유사하여 사용자, 링크 등에 대한 정보를 표시합니다.이 JSP는 사용자 정보를 가져 오는 Java 컨트롤러에 연결되며 모든 웹 응용 프로그램을 포함하여 내 WAR 파일의 일부입니다.Maven War Plugin과 Wars간에 War 리소스를 다시 사용하는 방법

Eclipse를 사용하여 개발 한 후 Maven을 사용하여 빌드하고 패키지화했습니다.

이제는 새로운 webApplication (새로운 전쟁)을 빌드해야하고 헤더를 다시 사용하고 싶습니다.

내가 척 것은 :

에 방법이 있습니다 :

  • 모두 전쟁이 그래서 질문은 헤더 코드

의 한 버전을 사용하여 코드를

  • 를 복제하지 & 이전 프로젝트의 두 파일 (header.jsp & controller.java)을 새 프로젝트에 붙여 넣지 마십시오.

  • +0

    Maven을 사용하여이를 달성하는 방법을 완전히 알지 못했지만 근본적으로이 밀접하게 관련된 질문과 동일한 프로젝트 구조를 따르기 위해 Maven이 필요합니다. http://stackoverflow.com/questions/11210628/ how-do-i-include-a-jsp-file-from-a-diff-project-my-project – BalusC

    답변

    6

    WAR 파일의 패키징을 처리하는 플러그인 인 Maven WAR plugin"Overlay" mechanism을 제공하여이 문제를 정확하게 해결합니다. 프로젝트를 "WAR"유형으로 지정하기 만하면 WAR 플러그인을 이미 사용하고 있습니다. maven은이를 패키지 단계 바인딩 용 WAR 플러그인의 사용을 포함하여 프로젝트를 빌드하는 방법에 대한 단서로 사용합니다.

    오버레이가 작동하는 방식은 필요한 jar 파일에 대한 의존성을 신경 쓰지 않는 것처럼 WAR 파일이 다른 WAR 프로젝트를 종속성으로 선언한다는 것입니다. WAR plugin의 패키지 mojo가 실행되면 다른 WAR에 대한 종속성을 확인하고 두 가지 조합으로 새로운 war를 빌드합니다. 파일이 WARS에 존재하면 파일 병합이 없습니다. 하나는 다른 하나를 단순히 오버라이드합니다. 플러그인을 사용하도록 설정하도록 플러그인을 구성 할 수 있습니다. 기본적으로 현재 프로젝트의 파일입니다. 또한 원한다면 하나 이상의 전쟁에만 의존 할 수 있습니다.

    +0

    정말 유용했습니다! 고마워요 !! – Marcos

    +0

    예제를 제공해 주시겠습니까? –

    +0

    @JohnS 오피스 링크를 삭제 해 죄송합니다. 이 링크의 예는 개념적 대답과 결합 할 때 꽤 좋습니다. http://maven.apache.org/plugins/maven-war-plugin/overlays.html – chad