Это вытекает из этого вопроса: Gradle, Tika - Exclude some dependency packages making a "fat jar" too fatИспользуйте Gradle добро, чтобы как-то извлечь и перестроить банки с зависимостями?
Ответ, который я выбрал там действительно сказать вам, как сократить размер «жир банки» (то есть исполняемую банка, который содержит всю его зависимость в нем), предусматривая какие зависимости исключать.
Используя эту технику, я разрезал свою банку с 62 МБ до 26 МБ. Но, извлекая эту банку и исследуя объемы составных каталогов (используя отличное приложение под названием TreeSize), я обнаружил, что мои классы составляют всего 228 КБ. Остальные - зависимости.
Допустимо, мой проект (или его зависимости) использует некоторые мощные технологии: в частности, Lucene (10 МБ), Apache POI (10,5 МБ), openxmlformats (10 МБ) и т. Д. (Предварительно сжатые размеры, конечно).
Дело в том, что я уверен, что в любой момент на самом деле используется только небольшая часть фактических пакетов и классов, содержащихся в этих отдельных зависимых баночках.
Учитывая, что автономная «жирная баня» не предназначена для универсальности, поэтому ее не нужно переполнять материалом, который она не использует, и учитывая, что Gradle очень умный и предназначен для тяжелого подъема для автоматизации здания, возможно, не должно/не должно быть какого-то способа извлечения и упаковки ТОЛЬКО тех классов, которые действительно необходимы: в частности, взламывая банки пакета, а затем переупаковывая только нужные классы?
26 МБ не является огромным размером для толстой банки. Но чем больше «технологий» использует индивидуальный проект, тем больше он станет использовать только крупнозернистый метод исключения банок зависимости.
PS Я знаю, что это было бы далекой от тривиальной задачи!
Я считаю, что введение на ваш вопрос не требуется. Вероятно, вам следует начать с публикации конфигурации shadowJar и спросить, как удалить из нее определенные файлы. Большинство людей не хотели бы смотреть на другой вопрос, чтобы получить контекст. (Я знаю это, так как я ответил на это :)) – sm4