Как определить версию библиотеки CGLIB в проекте?

«Как определить версию библиотеки CGLIB в проекте?» — вопрос из категории Spring, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Версию CGLIB можно определить несколькими способами:

1. Через файлы сборки (рекомендуется)

  • Maven: Проверьте pom.xml:
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>3.3.0</version> <!-- Версия указана здесь -->
    </dependency>
  • Gradle: Проверьте build.gradle:
    implementation 'cglib:cglib:3.3.0'

2. Через код во время выполнения CGLIB не предоставляет публичного API для версии, но можно попробовать получить её из манифеста JAR-файла:

Package pkg = net.sf.cglib.proxy.Enhancer.class.getPackage();
String version = pkg.getImplementationVersion(); // Может вернуть null
System.out.println("CGLIB version: " + version);

3. Через анализ classpath Найдите JAR-файл cglib в classpath вашего приложения (например, в папке target/ или build/libs/) и проверьте его имя или содержимое META-INF/MANIFEST.MF.

Почему это важно? Spring Framework и Hibernate используют CGLIB для создания динамических прокси-классов. Знание версии помогает при диагностике проблем совместимости.