Я использую стороннюю зависимость, которая затеняет некоторые файлы Джексона как shaded.jackson.core. * Или shaded.jackson.databind. * И использует ее (как импорт) в своем приложении. Однако я хочу использовать версию Джексона, отличную от той, что затенена в этой зависимости. Итак, я пытался использовать функцию перемещения в Gradle, чтобы также затенить зависимости Джексона аналогично (с последней версией) для shaded.jackson, а затем использовать его.
shadowJar {
mergeServiceFiles()
classifier = ''
dependencies {
include(dependency('com.fasterxml.jackson.core:jackson-annotations:2.9.6'))
include(dependency('com.fasterxml.jackson.core:jackson-core:2.9.6'))
include(dependency('com.fasterxml.jackson.core:jackson-databind:2.9.6'))
}
relocate 'com.fasterxml.jackson.core', 'shaded.jackson.core'
}
Но когда я строю проект с помощью gradle, я получаю сообщение «Причина: java.lang.ClassNotFoundException: shaded.jackson.core.JsonProcessingException». Здесь «shaded.jackson.core.JsonProcessingException» вызывается из некоторого Java-класса в сторонней зависимости. Любые предложения или исправления приветствуются!