如何防止Maven Webstart构建zip文件?

时间:2011-08-17 14:05:14

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

我正在使用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是有用信息的最佳来源 - 例如 Looking for Webstart Maven Plugin sample application

似乎是在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>

有人知道标签的作用吗?

我期待&lt; gzip&gt;标记允许通过将其设置为&lt;来排除zip文件的创建。 gzip&gt;假&lt; / gzip&gt;,但我对此的测试表明情况并非如此。确实情况并非如此,有谁知道&lt; gzip&gt;标签呢?

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

1 个答案:

答案 0 :(得分:4)

您可以通过将<makeArchive>false</makeArchive>添加到网络初始插件配置来停用创建完整的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文件需要包含以下内容才能使用packed / gzipped库:

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

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

  • 解压缩/未压缩的罐子:13 167 855字节
  • Pack200'ed罐子:11 807 799字节
  • 包装和gzipped罐子:4 821 048字节

正如您所看到的,pack200 / gzip组合将为安装和升级时间带来真正的改变。