Как уменьшить размер файлов Jar для обновления ИЛИ каков наилучший способ обновления файла Jar

#java #deployment #jar #jarsigner

#java #развертывание #jar #jarsigner

Вопрос:

У нас есть приложение, состоящее из двух трех файлов размером 130 МБ, 40 МБ и 70 МБ, первоначально при установке мы отправляем целые файлы Jar вместе с другими файлами, такими как jre, файлы настройки базы данных, что составляет общий zip-файл 700 МБ. Теперь для обновления приложения у нас снова есть отправка целых файлов Jar, общий размер которых составляет 240 МБ, что слишком много для обновления приложения. Каков наилучший способ обновления файла JAR без отправки всего jar.

Комментарии:

1. Файлы Jar уже сжаты, поэтому единственный способ уменьшить их размер — уменьшить объем кода, который они содержат. Что касается вопроса об обновлении, почему вы считаете, что 240 МБ слишком велики для обновления? Многие приложения выполняют обновления, в основном заставляя пользователя выполнять переустановку.

Ответ №1:

Вы «чередуете» свои банки? 130 МБ для кучи файлов классов — это огромный размер, что заставляет меня думать, что вы либо разделили (распаковали целую кучу dep, а затем перепаковали их в один гигантский jar, или, в данном случае, очевидно, 3 из них), либо включили большие ресурсы, такие как большойфоновое изображение для вашего приложения в этих банках.

Отмените это — не делайте полосу, и ваше развертывание приложения будет содержать значительное количество файлов jar. Если у вас есть куча ресурсов (например, упомянутое большое фоновое изображение), убедитесь, что они в конечном итоге встроены в разные банки; ваш инструмент сборки должен иметь поддержку для этого.

На данный момент у вас есть множество банок меньшего размера, и «обновление», скорее всего, означает, что только несколько банок вообще изменились. Таким образом, теперь речь идет об отправке хэшей этих файлов jar на центральный сервер, при этом этот сервер сообщает: хорошо, вам нужны обновления только для этого, того и другого jar, но не для остальных.

банки уже сжаты, поэтому на этом этапе просто отправьте эти банки.

Комментарии:

1. Я не удалял Jar, мой jar состоит из зависимостей, пожалуйста, смотрите Эту ссылку для зависимостей, которые делают файл тяжелым drive.google.com/file/d/1uuoIqp-mjEobjfFgZpT2t1VgJt_wleh1/view

2. Для создания jar это мои настройки drive.google.com/file/d/1uuoIqp-mjEobjfFgZpT2t1VgJt_wleh1/view

3. @kailashdesiti Я сказал чередование , а не удаление, и «мой jar состоит из зависимостей» — это чередование. Итак, ответ — да. Поэтому мой ответ применим: прекратите это делать. Отправляйте банки отдельно. Обновляйте только те, которые нуждаются в обновлениях.