Ответ
Чтобы явно указать конкретную версию CGLIB и переопределить транзитивную зависимость, необходимо объявить ее в менеджере зависимостей.
Для Maven (pom.xml):
Добавьте зависимость с нужным version в раздел <dependencies>.
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.3.0</version> <!-- Явное указание версии -->
</dependency>
Для Gradle (build.gradle):
Укажите версию в блоке dependencies.
dependencies {
implementation 'cglib:cglib:3.3.0'
}
Если возникает конфликт версий: CGLIB часто подключается как зависимость других библиотек (например, Spring Core). Чтобы исключить старую версию и использовать свою:
- В Maven: Используйте тег
<exclusions>внутри проблемной зависимости.<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.3.23</version> <exclusions> <exclusion> <groupId>cglib</groupId> <artifactId>cglib</artifactId> </exclusion> </exclusions> </dependency> - В Gradle: Используйте
exclude.implementation('org.springframework:spring-core:5.3.23') { exclude group: 'cglib', module: 'cglib' }Почему это важно: Разные версии CGLIB могут быть несовместимы. Явное указание версии обеспечивает предсказуемость сборки и предотвращает ошибки, связанные с байткод-генерацией.