2017-02-07 1 views
1

두 개의 EJB 및 몇 가지 웹 응용 프로그램을 사용하여 ear 파일을 작성하는 데 maven을 사용하고 있습니다. 더 많은 전쟁이 뒤 따르기 때문에 마른 전쟁을 사용하고 싶습니다. 내가 알 수있는 바와 같이Maven : SkinnyWars가 일부 라이브러리를 보존하도록하십시오.

, 다음 모든 전쟁 파일의 WEB-INF/lib 디렉토리에서 EJB (단지 제외) 모든 * .jar 파일을 제거합니다 :

<dependencies> 
    <dependency> 
    <groupId>my.domain</groupId> 
    <artifactId>project</artifactId> 
    <version>${project.version}</version> 
    <type>war</type> 
    </dependency> 

    <!-- Scope: Provided for skinnies. --> 
    <dependency> 
    <groupId>my.domain</groupId> 
    <artifactId>project</artifactId> 
    <version>${project.version}</version> 
    <type>pom</type> 
    </dependency> 
</dependencies> 

[..] 

<configuration> 
     <version>7</version> 
     <defaultLitBundleDir>lib/</defaultLitBundleDir> 
     <skinnyWars>true</skinnyWars> 
[..] 

내가 가진 문제는 분명히 것입니다 또한 webjars을 모두 제거하십시오. Webjars이 같은 jar 파일 내부에 포장되어 웹 라이브러리 (등 CSS, JS,)입니다 : 어떤 서블릿 3 호환 용기와

의 WEB-INF/lib 디렉토리에있는 WebJars가 자동으로 만들어집니다 정적 인 리소스로 사용 가능합니다. 이는 WEB-INF/lib의 JAR에있는 META-INF/resources 디렉토리에있는 모든 것이 정적 인 자원으로 자동 노출되기 때문에 가능합니다.

출처 : 나는 정말이 생각처럼 http://www.webjars.org/documentation#servlet3

. 이제는 모든 항아리가 myear!/lib/webjar로 옮겨 질 때 포함 된 파일은 더 이상 노출되지 않습니다. :-(

나는 (: : org.webjars 같은) 특정 라이브러리를 제외 할 수 skinnyWars에 대한 옵션을 발견하지 않았습니다. 다른 해결책이있을 경우

, 나는 귀하의 의견을보고 싶어요

+0

아니요, WAR에서 모든 JAR을 제거하지 않습니다. EAR의 POM에 종속성으로 지정된 것만. http://maven.apache.org/plugins/maven-ear-plugin/examples/skinny-wars.html – Tunaki

+0

Ahh okay를 참조하십시오. 방금 종속성을 가진 전쟁을 다시 포함 시켰습니다. DRY 원리 때문에 type = pom. 어쨌든 다른 솔루션을 발견하여 잠시 후 게시합니다. – Ben

답변

0

업데이트 된 답변에서 알 수 있듯이 전쟁 파일의 종속성은 거의 두 번 같습니다 (한 번은 type=war, 다른 하나는 type=pom). 따라서 모든 종속성이 포함되어 있습니다. 귀와 전쟁에서 벗 겼어.

지금, 나는 단지 엄마 일 수 있었다. 공유 라이브러리를 직접 두었지만 나는 thinking of DRY이었다. 그래서 나는 언급 된 해결책을 원했다. 약간 해킹 된 것 같지만, 완벽하게 작동합니다.

그러나 잠시 후 나는 사용하지 않는 wrong link in the webjars documentation for Servlet2을 클릭했습니다.

하나의 서블릿으로 구성된 다른 종속성을 가짐으로써 작동합니다. 이 서블릿은 META-INF/resources에있는 해당 파일에 요청을 다시 쓰거나 전달합니다. 나는 이것이 나의 상황을 위해서도 효과가있을 것이라고 생각했다.

그래서 servlet2 설명서에 표시된 종속성을 포함하고 web.xml 파일에 해당 부분을 추가했습니다. 그리고 예상대로 작동하지 않습니다.

관련 문제