Java Минимизирует зависимости
-
21-09-2019 - |
Вопрос
У меня есть ситуация, когда есть небольшой фрагмент Java-кода, который содержит большое количество jar-файлов, от которых он зависит.Однако зависимости внутри этих банок очень мелкие.В большинстве случаев это зависит только от jar для одного интерфейса.
Вместо того чтобы распространять все jar-файлы вместе с приложением, я хотел бы просто распространять определенные файлы классов внутри jar-файлов, которые оно фактически использует.Причина этого заключается в экономии места (этот код будет находиться в апплете).
Кто-нибудь знает об инструменте или методе, позволяющем сделать это автоматически?Предполагая, что все зависимости статичны, это кажется вполне возможным.Есть какие-нибудь идеи?
Решение
Классдепанджар разделит кодовую базу до основных классов.Он используется в мире Jini для производства банок оптимального размера, но в нем нет ничего специфичного для Jini.
Доступно как муравьиная задача.
Другие советы
Насколько я знаю, это только maven, но это хорошее начало
Плагин Maven Shade (Тень):Этот плагин предоставляет возможность упаковывать артефакт в uber-jar, включая его зависимости и затенять, т.е.переименовать - пакеты некоторых зависимостей.
Предусмотрительный выполняет сжатие / оптимизацию, а также обфускацию.Я думаю, вы можете настроить его так, чтобы он выполнял только одно или другое.