2010-11-26 5 views
4

war 파일이 들어있는 ear 파일이 생성되었지만 ear 파일에는 war 파일의 lib 폴더에 이미있는 jar 파일이 들어 있습니다. 복제 된 jar 파일을 제거하려면 어떻게해야하며, jar 파일은 어디에 위치시켜야합니까? war 파일의 lib 폴더 또는 war 파일 외부에 있습니까? (나는 내 ​​프로젝트에서 Maven Ear Plugin과 Maven War Plugin을 사용하고있다.)ear 파일에 동일한 여러 jar 파일이 있습니다.

+0

사용중인 EE 버전? 5 또는 6? – javamonkey79

+0

Java 1.6을 사용하고 있으므로 J2EE 6이라고 생각하십니까? 그러나 둘의 차이점은 무엇입니까? – newguy

+0

jdk1.6은 jEE 6 –

답변

3

필자는 ear 파일 내부에 마른 전쟁 파일을 생성하여이를 수행하는 방법을 마침내 발견했습니다. 여기에서 얻은 maven-war-plugin 예제에서 영감을 받았습니다. skinny-wars

예제의 지침에 따라 전쟁 모듈에서 모든 jar 파일을 이동하여 ear 파일 내의 lib 폴더에 넣었습니다.

그래서 최종 귀 파일 구조는 다음과 같습니다

ear-app 
    -- lib (all the jar files will be here) 
    -- webModule1 
     -- lib (empty) 
    -- webModule2 
     -- lib (empty) 
    -- ejbModule 
0

둘 다 사용하는 항아리가있는 경우 EJB 아카이브 및 웹 아카이브, 당신은 다음을 수행 할 수 있습니다

  1. 가 된 .ear의 루트 모든 일반적인 항아리를 유지
  2. ejb 및 web 아카이브에서 manifest.mf의 Class-Path 속성을 사용하여 이러한 jar 파일을 참조하십시오. 항아리의 위치는 ear 파일의 루트에 상대적이라는 것을 기억하십시오.

EJB jar가없는 경우에도 위의 단계가 작동합니다.

+0

을 의미하지 않습니다. Class-Path를 사용하더라도 war 파일에는 항상 jar 파일이 포함 된 lib 폴더가 있습니다. 어떻게 제거 할 수 있습니까? – newguy