Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Webstart(库)签名_Java_Ant_Jar_Java Web Start_Jar Signing - Fatal编程技术网

Java Webstart(库)签名

Java Webstart(库)签名,java,ant,jar,java-web-start,jar-signing,Java,Ant,Jar,Java Web Start,Jar Signing,我有点担心我们当前的构建过程。它散发出“错误的方式”的味道,并导致我们的客户大量额外下载 我们有一个通过Webstart发布的常规Java项目。它使用我们作为.jar文件提供的各种库。我们的JNLP如下所示: <resources> <!-- Application Resources --> <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" max-heap-s

我有点担心我们当前的构建过程。它散发出“错误的方式”的味道,并导致我们的客户大量额外下载

我们有一个通过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都必须由同一证书签名

随后,我们将所有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?

请参见

用于控制签名文件的存在是否意味着JAR已签名的标志。这仅在目标JAR与源JAR匹配时使用


谢谢,我把它作为标签加上去了。我们实际上没有专门从事构建过程的人,所以我们对构建过程的理解有点模糊;)评论升级为答案。:)