6

在使用 maven-webstart-plugin 构建 jnlp 时,我发现 jnlp 中没有包含运行时依赖项。

我正在使用这样的模板:

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

...但理想情况下,我不想每次向我的项目添加运行时依赖项时都必须记住更改它。

有没有办法指示插件包含所有运行时依赖项?

4

2 回答 2

1

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

发生了什么事?

好吧,我还使用 ant 将 jnlp 部署到服务器上,并且在 ant 文件中,$dependencies正在使用设置,mvn:dependencies而没有将范围指定为运行时。因此,添加范围会更改$dependencies并入 jnlp 文件的文件集。

于 2012-05-30T21:31:18.590 回答
0

我使用父 pom 配置,其中一个模块是 web 启动项目。我喜欢尽量减少这个。我只编译了对日志库、主应用程序模块(同一父 pom 结构中的另一个模块)和 jar 文件(包括本机二进制文件)的依赖项。除了这些编译依赖之外,我还有一些测试依赖和对本地 javaws.jar 文件的系统依赖。

maven webstart 插件似乎包含来自模块的任何运行时依赖项,这些模块作为编译依赖项包含到 web start 项目中。以类似的方式拆分项目可能是一种解决方案。

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

于 2011-10-11T12:14:34.897 回答