3
我對我們當前的構建過程有點擔心。它聞起來「錯誤的方式」,並導致我們的客戶大量額外下載。Java Webstart(庫)簽署
我們有一個通過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" />
<!-- ... -->
到目前爲止這麼好。現在,使用不同證書籤名的罐子存在一個問題,我想,或者只有在使用自簽名證書籤名時纔有問題。無論哪種方式,找到的解決方案是所有的罐子必須由相同的證書籤名。
隨後,我們我們所有的罐子,我們自己還有圖書館,複製到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(這是很多)。圖書館在技術上並沒有改變,但辭職使他們顯得新鮮。
我們正在做對嗎?有沒有更好的辦法 ?我們可以以某種方式改變我們的構建過程,以便人們可以緩存庫罐?
謝謝,我將其添加爲標記。我們並沒有真正有人專注於構建過程,所以在我們的理解中它們都有點模糊;) – Torque 2013-02-22 17:49:26
評論升級爲答案。 :) – 2013-02-23 03:24:47