2011-08-31 9 views
6

maven-webstart-plugin을 사용하여 jnlp를 빌드 할 때 런타임 종속성이 jnlp에 포함되지 않은 것으로 나타났습니다.런타임 종속성을 포함하는 Maven-webstart- 플러그인

<?xml version="1.0" encoding="utf-8"?> 
<jnlp spec="$jnlpspec" codebase="${url}/${appName}" href="${outputFile}"> 
    <information> 
     <title>${appName}</title> 
     <vendor>$project.Organization.Name</vendor> 
     <homepage href="${url}/${appName}"/> 
     <offline-allowed/> 
    </information> 
    <security> 
     <all-permissions/> 
    </security> 
    <resources> 
     <j2se version="$j2seVersion"/> 
     $dependencies 
    </resources> 
    <application-desc main-class="${main}" /> 
</jnlp> 

이 어떻게 런타임 종속성을 포함 할 수 있습니다

이 같은 템플릿을 사용하고 있습니다? 글쎄, 난 개별적으로 모두를 포함 할 수 있습니다 :

<plugin> 
    <groupId>org.codehaus.mojo.webstart</groupId> 
    <artifactId>webstart-maven-plugin</artifactId> 
    <configuration> 
     <dependencies> 
     <includes> 
      <include>groupId:artifactId</include> 
      ... 
     </includes> 
     </dependencies> 
     ... 
    </configuration> 
    </plugin> 

...하지만 이상적으로는, 내가 내 프로젝트에 런타임 종속성을 추가,이 모든 시간을 변경해야하고 싶지 않아요.

모두 런타임 종속성을 포함하도록 플러그인에 지시 할 수있는 방법이 있습니까?

답변

1

그래서 기본값은 모든 컴파일 및 런타임 종속성을 포함하는 것으로 밝혀졌습니다.

무슨 일이 있었나요?

글쎄, 나는 또한 서버에의 JNLP를 배포하는 개미를 사용하고, 그리고 개미 파일에서 $dependencies 런타임으로 지정되는 범위없이 mvn:dependencies를 사용하여 설정되고 있었다. 따라서 범위를 추가하면 jnlp 파일에 통합 된 $dependencies 파일 세트가 변경됩니다.

0

모듈 중 하나가 웹 시작 프로젝트 인 상위 POM 구성을 사용합니다. 나는 이것을 가능한 한 최소로 유지하고 싶다. 로깅 라이브러리, 기본 응용 프로그램 모듈 (동일한 부모 pom 구조의 다른 모듈) 및 원시 바이너리를 포함한 jar 파일에만 종속성을 컴파일했습니다. 이러한 컴파일 종속성 외에도 로컬 javaws.jar 파일에 대한 테스트 종속성과 시스템 종속성이 있습니다.

maven webstart plugin에는 컴파일 종속성으로 웹 시작 프로젝트에 포함 된 모듈의 런타임 종속성이 포함되어있는 것으로 보입니다. 비슷한 방법으로 프로젝트를 분할 할 수도 있습니다.

네이티브 바이너리. jar 자원 대신 nativelib과 같은 종속성을 얻기 위해 속도 템플리트를 다소 수정해야했습니다.

+0

nativelib 매개 변수에 대한 수정 된 속도 템플릿으로 솔루션을 공유 할 수 있습니까? – rauch