2015-01-26 6 views
0

나는 Maven WAR Overlays을 읽고 있으며 유스 케이스 주위를 감싸고있다.Maven Overlay 대 ClassLoader Magic?

According to this article은 동일한 리소스 (CSS, JS, HTML 등)를 공유해야하는 WAR가 여러 개인 경우 유용합니다.

그러나 재사용 가능한 모든 코드/리소스를 공유 JAR에 넣은 다음 런타임에 CS/JS/HTML/etc에 액세스 할 수없는 이유는 무엇입니까? 리소스를 통해 일반적인 ClassLoader#getResourceAsStream() 마술?

여기에 뭔가가 있습니까? Do Maven Overlay는 실제로 여기에있는 고유 한 문제를 해결합니까? (그렇다면 무엇입니까?!).

답변

1

오버레이는 재사용에 그치지 않습니다. 그것은 공통의 코드 기반 (전쟁)에서 시작하여 구성, 구현 또는 정적 자원을 조정하는 것보다 많은 유물을 산출 할 수있는 깔끔한 방법을 제공합니다.

대부분의 프로젝트에서 사례를 설명하기 위해 CI에서 Selenium 테스트를 실행합니다. 그것들은 원래 WAR의 오버레이에 대해 실행됩니다. 테스트의 목적 상, 테스트 실행과 관련하여 제 3 자 시스템 (예 : 스프링 통합 게이트웨이)과 통신하는 모든 클래스 구현을 스왑하고 대개 사용자 정의 web.xml을 사용하여 테스트 실행과 관련된 세부 사항을 추가했습니다 (재현 버그, 동적 레이아웃 테스트)

오버레이를 사용하기 전에 우리는 maven-profile에 많은 관심을 기울 였고, maven-war- 플러그인, 스프링 프로파일을 사용하여, 우리의 요구 사항 중 일부는 여전히 실패했고 유지 보수하기가 훨씬 어려웠습니다.