Идентифицировать необходимые / ненужные классы в JAR

#java #jar #class-library

#java #jar #библиотека классов

Вопрос:

Я распространяю Java-приложение в виде JAR, но это зависит от нескольких дополнительных библиотек Apache. В целом, библиотеки увеличивают размер JAR в шесть раз. Мне не нужна вся библиотека, и я хочу удалить все, что не нужно моему коду.

Есть ли способ определить классы, которые необходимы? Я мог просмотреть исходный код для всех классов, которые я вызвал, и проверить их зависимости, но это просто неудобно, учитывая, что библиотеки находятся в 6 отдельных JAR.

Ответ №1:

Вы можете использовать ProGuard для устранения любых ненужных классов в распределенных jar. Возможно, вам потребуется настроить процесс для обработки зависимостей, которые не могут быть обнаружены во время компиляции (например, из-за отражения).