сгенерированный файл войны составляет 20 МБ без каких-либо плагинов в Grails 2.2?

Я создаю тестовые приложения. Мне нужно загрузить их на удаленный сервер, поэтому важен сгенерированный размер войны. Тестовые приложения в основном не используют плагины. Даже после удаления всех плагинов по умолчанию сгенерированная война составляет 20 мб. Есть ли способ еще больше уменьшить военный файл? Я использую Грааль 2.2. Я предполагаю, что на войне есть много вещей, которые не нужны. Я ценю любую помощь. Спасибо!


person kofhearts    schedule 12.05.2020    source источник


Ответы (2)


Даже после удаления всех плагинов по умолчанию сгенерированная война составляет 20 мб. Есть ли способ еще больше уменьшить военный файл? Я использую Грааль 2.2.

Невозможно сказать, есть ли в файле .war что-то еще, что можно удалить или нет, не зная, что делает ваше приложение и какие библиотеки на самом деле используются. Посмотрите на файлы .jar, которые находятся в вашем файле .war, и если есть те, которые вам не нужны, их можно исключить. См. https://grails.github.io/grails2-doc/2.2.x/guide/conf.html#ivy для получения информации об исключении транзитивных зависимостей.

person Jeff Scott Brown    schedule 12.05.2020

На вашем месте я бы посмотрел на обновление до Grails 4 или, может быть, на Micronaut. Как правило, Grails оптимизирован для скорости разработки, работы с большим количеством библиотек и использования соглашений, а не конфигурации. При этом вы можете получить некоторые преимущества при переходе на Grails 4, так как было проведено множество рефакторингов, а некоторые старые зависимости были удалены. Кроме того, Grails 4 использует Micronaut в качестве родительского контекста, что ускоряет запуск. Grails 3 и 4 обычно также потребляют меньше памяти. Усилия по обновлению до Grails 3 зависят от того, сколько у вас плохих практик * от количества кода, который у вас есть.

Таким образом, обновление до Grails 3 не является тривиальным, хотя, учитывая размеры вашего приложения, оно может оказаться не таким уж плохим. Обновление формы 3 до 4 намного проще. Переход от 2 к 4 будет немного больше, чем переход от 2 к 3, но опять же, если ваше приложение действительно маленькое, это может быть не так уж плохо.

Micronaut, с другой стороны, был создан для микросервисов и занимает меньше места. Вы по-прежнему можете использовать Groovy с ним, и хотя он имеет некоторые общие черты с Grails, он не использует соглашение по конфигурации и больше похож на весеннюю загрузку с большим количеством аннотаций.

person virtualdogbert    schedule 12.05.2020
comment
В этом случае ответ Джеффа - правильный путь, хотя 20 МБ мало по сравнению с любым нетривиальным приложением Grails, которое я видел. Удачи. Возможно, когда-нибудь вы сможете принудительно обновиться до Grails 4.1, когда он будет работать на Java 11, в качестве меры соответствия. - person virtualdogbert; 13.05.2020