2010-12-16 2 views
1

.jsp 파일 \ Calendar.jsp를 포함하는 views이라는 이름의 메이븐 모듈이 있습니다. 나는 모듈 views에 의존하는 core이라는 또 다른 maven 모듈을 가지고 있습니다. 모듈 views의 패키징 유형은 jar이며, core 모듈의 패키징 유형은 전쟁입니다.오버레이 처리 후 .jar 파일에서 .jsp를 제거하는 방법

views.jar에서 WEB-INF \ views 폴더 (core.war)로 .jsp 파일을 복사하도록 overlay을 구성했습니다.

<configuration> 
     <overlays> 
      <overlay> 
       <groupId>org.opensource</groupId> 
       <artifactId>views</artifactId> 
       <type>jar</type> 
       <includes> 
        <include>**/*.jsp</include> 
       </includes> 
       <targetPath>WEB-INF/views</targetPath> 
      </overlay> 
     </overlays> 
</configuration> 

overlay 구성이 잘 작동하고 은 WEB-INF \에 views.jar에서 .jsp로 파일을 복사하지가 (core.war의) 폴더를 볼.

그러나 문제는이 .jsp 파일을 views.jar에서 제거하지 않는다는 것입니다. 따라서 core.war은 중복 된 .jsp 파일로 끝납니다 (WEB-INF/views 폴더에 하나의 복사본이 있고 views.jar에 다른 복사본이 있음). 결과적으로 core.war의 크기가 크게 증가합니다. (. 그들은 웹 애플리케이션을 실행하는 동안 사용되지 않기 때문에 views.jar에있는 .jsp로 파일이 중복하는 것은)

그래서, 질문은 : - + 붙여 넣기 작업을 대신 을 할 overlay을 구성하는 방법 + 붙여 넣기 작업을 복사하십시오. overlay을 사용하여이 작업을 수행 할 수없는 경우 다른 방법이 있습니까?

답변

1

Maven은 이미 로컬 또는 원격 리포지토리에 설치된 종속 아티팩트를 변경하지 않으려합니다. war 모듈의 오버레이 기능을 통해 어떤 해결책을 찾고 있는지를 확신 할 수 있습니다.

이 문제를 해결할 수있는 또 다른 방법이 있습니다. 한 걸음 물러서서 view 모듈을 다시 살펴 보는 것입니다. 보기 모듈을 사용하여 두 개의 jar를 작성해야합니다. 하나는 모든 클래스를 포함하고 다른 하나는 JSP 파일을 포함하고 분류자를 사용하여이 아티팩트를 저장합니다. 이를 수행하려면 assembly plugin을 사용해야 할 수도 있습니다. 핵심 모듈에서 분류 자와 함께 JSP 아티팩트를 가져온 다음이를 사용하여 모듈의 전쟁 생성을 오버레이합니다.