【问题标题】:Maven-webstart-plugin to include runtime dependenciesMaven-webstart-plugin 包含运行时依赖项
【发布时间】:2011-11-07 10:06:45
【问题描述】:

在使用 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>

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

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

【问题讨论】:

    标签: maven jnlp java-web-start maven-webstart-plugin


    【解决方案1】:

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

    发生了什么事?

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 你能分享一下你的解决方案吗?
      猜你喜欢
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 2017-06-15
      • 1970-01-01
      相关资源
      最近更新 更多