Меня немного беспокоит наш текущий процесс сборки. Он пахнет «неправильным способом» и заставляет наших клиентов много дополнительных загрузок.Подписание Java Webstart (Library)
У нас есть обычный Java-проект, который мы публикуем через Webstart. Он использует множество библиотек, которые мы поставляем в виде .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>
Это все работает отлично, хотя это занимает много времени, подписывая каждую банку. Но это также заставляет каждого клиента повторно загружать каждый баннер библиотеки каждый раз, когда мы публикуем изменения в нашем собственном банке приложений (что очень много). Библиотеки технически не меняются, но отставка делает их новыми.
Мы делаем это правильно? Есть ли способ лучше ? Можем ли мы каким-то образом изменить наш процесс сборки, чтобы сделать так, чтобы люди могли кэшировать библиотечные банки?
Спасибо, я добавил это как тег. На самом деле, у нас нет никого, кто специализировался в процессах сборки, так что все это немного расплывчато в нашем понимании;) – Torque
Комментарий обновлен для ответа. :) –