2011-08-31 54 views
6

当使用maven-webstart-plugin构建jnlp时,我发现运行时依赖关系未包含在jnlp中。Maven-webstart-plugin包含运行时依赖关系

我用这样的一个模板:

<?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

所以事实证明,默认是包含所有的编译和运行时依赖。

发生了什么事?

嗯,我也使用ant来将jnlp部署到服务器上,并且在ant文件中$dependencies正在使用mvn:dependencies进行设置,但没有将作用域指定为运行时。因此,添加示波器会更改合并到jnlp文件中的$dependencies文件集。

0

我使用父POM配置,其中一个模块是网络启动的项目。我希望保持尽可能最小。我只将编译依赖关系写入日志库,主应用程序模块(同一父pom结构中的另一个模块)以及包含本机二进制文件的jar文件。除了这些编译依赖关系之外,我还有一些测试依赖关系和系统依赖关系到本地的javaws.jar文件。

看来,行家Webstart的插件,包括来自其包含的Web Start的项目作为编译依赖模块的任何运行时依赖。 这可能是您以类似方式拆分项目的解决方案。

关于本机二进制文件。我不得不修改速度模板来获得这些依赖作为nativelib而不是jar资源。

+0

请问您可以与nativelib参数修改velocity模板共享您的解决方案吗? – rauch