2

我在构建周期中使用 Maven,包括使用 maven-webstart-plugin 生成 jnlp 文件。此过程对 jar 进行签名并从模板创建 jnlp(这很棒),但随后还会创建所有已签名 jar 和 jnlp 文件的 zip 文件(这可能会有所帮助,但我不想要)。

maven-webstart-plugin 的文档不是特别全面... http://mojo.codehaus.org/webstart/webstart-maven-plugin/jnlp-mojos-overview.html

事实上,我发现 stackoverflow 是获取有用信息的最佳来源 - 例如 ,寻找 Webstart Maven 插件示例应用程序

在maven-webstart-plugin 配置中似乎有一种方法可以做到这一点 - 例如(来自上面的示例):

<plugins>
  <plugin>
    <groupId>org.codehaus.mojo.webstart</groupId>
    <artifactId>webstart-maven-plugin</artifactId>
    <configuration>
      ...
      <pack200>true</pack200>
      <gzip>true</gzip> <!-- default force when pack200 false, true when pack200 selected ?? -->
      ...
    </configuration>
  </plugin>
</plugins>

有谁知道标签是做什么的?

我希望 <gzip> 标签允许通过将其设置为 <gzip> false</gzip> 来排除 zip 文件的创建,但我对此的测试表明情况并非如此。实际上并非如此,有谁知道 < gzip > 标签的作用?

最后,如果这些不是相关标签,是否可以阻止创建 zip 文件?如果是这样,怎么做?

4

1 回答 1

4

<makeArchive>false</makeArchive>您可以通过添加到 web start 插件配置来禁用完整 zip 存档的创建。

如您所知,使用<pack200>true</pack200>会在您的发行版中生成一个额外的 pack200 压缩版本的库。

添加时<gzip>true</gzip>,每个打包的库都使用 gzip 进行压缩。

根据您使用的配置组合,您将获得类似的库:

  • log4j-1.2.16.jar
  • log4j-1.2.16.jar.pack
  • log4j-1.2.16.jar.pack.gz

gzip 设置似乎也需要启用 pack200。解压/未压缩版本始终包含在分发中。

我相信您知道您的 jnlp 文件需要包含以下内容才能使用打包/gzipped 库:

<resources>
  <property name="jnlp.packEnabled" value="true"/>
</resources>

我的一个 JWS 应用程序的 Pack200/gzip 结果:

  • 解压/解压缩的 jars:13 167 855 字节
  • Pack200 的罐子:11 807 799 字节
  • 打包和 gzip 压缩的 jar:4 821 048 字节

如您所见,pack200/gzip 组合将对安装和升级时间产生真正的影响。

于 2011-10-11T11:51:49.190 回答