gpt4 book ai didi

Java Webstart(库)签名

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:30:21 28 4
gpt4 key购买 nike

我有点担心我们当前的构建过程。它闻起来像“错误的方式”,并导致我们的客户进行大量额外的下载。

我们有一个通过 Webstart 发布的常规 Java 项目。它使用我们作为 .jar 文件提供的各种库。我们的 JNLP 看起来像这样:

<resources>
<!-- Application Resources -->
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" max-heap-size="512m" java-vm-args="-Xincgc" />
<jar href="OurApp.jar" main="true" />
<jar href="nimrodlf-1.2.jar" main="false" />
<jar href="jackson-core-asl-1.9.10.jar" main="false" />
<jar href="jackson-jaxrs-1.9.10.jar" main="false" />
<!-- ... -->

到目前为止一切顺利。现在使用由不同证书签名的 jar 存在问题,我猜,或者可能只有在使用自签名证书签名时才会这样。无论哪种方式,找到的解决方案是所有 jar 都必须由相同的证书签名。

随后,我们将所有的 jar,我们自己的以及库复制到 Webstart 文件夹中,并像这样使用 Ant 对它们进行签名:

<target name="sign_jar" depends="check_publish">
<signjar keystore="ourapp.keystore" alias="jenkins" storepass="private" verbose="true">
<path>
<fileset dir="${publish.folder}/" includes="**/*.jar" />
</path>
</signjar>
</target>

这一切都很好,尽管签署每个 jar 需要很长时间。但它也会导致每个客户端在每次我们发布对我们自己的应用程序 jar 的更改时重新下载每个库 jar(很多)。这些库在技术上没有变化,但辞职使它们看起来像新的。

我们这样做对吗?有没有更好的办法 ?我们能否以某种方式改变我们的构建过程,以便人们可以缓存库 jar?

最佳答案

参见 signjar task - lazy attribute ..

flag to control whether the presence of a signature file means a JAR is signed. This is only used when the target JAR matches the source JAR

关于Java Webstart(库)签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15030132/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com