jackson-databind выбрасывает NoClassDefFoundError: com / fastxml / jackson / databind / ObjectMapper, даже если он находится в затененной банке - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь запустить плагин губки с внешней зависимостью (JDA), и когда я создаю затененную банку с зависимостью, она все еще говорит, что jackson-databind не найден, даже когда я открываю саму банку, я вижукласс, который он не может найти.

Я пытался включить JDA в качестве локального фляги, я пытался включить сам Джексон в качестве зависимости, я даже пытался убрать JDA и просто включить Джексона, но он все еще не мог его найти. По какой-то причине это выглядит так, как будто Джексону не нравится быть включенным в заштрихованные банки

plugins {
    id 'org.spongepowered.plugin' version '0.9.0'
    id "com.github.johnrengelman.shadow" version "5.1.0"
}

group = pluginGroup
version = pluginVersion

sourceCompatibility = '1.8'
targetCompatibility = '1.8'

repositories {
    jcenter()
}

dependencies {
    compileOnly 'org.spongepowered:spongeapi:7.1.0'
    annotationProcessor 'org.spongepowered:spongeapi:7.1.0'
    compile 'net.dv8tion:JDA:4.0.0_52'

}

sponge.plugin.id = pluginId

Я должен представить, что это как-то связано с тем, что это плагин, а не отдельная банка, и это как-то влияет наclasspath или что-то, на данный момент я не уверен, что происходит. Всякий раз, когда я запускаю сервер с затененным jar-файлом и он пытается использовать JDA, он выдает эту ошибку:

[22:08:55 ERROR] [STDERR]: Exception in thread "OkHttp Dispatcher" java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.api.utils.data.DataObject.<clinit>(DataObject.java:54)
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.api.requests.Response.parseBody(Response.java:204)
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.api.requests.Response.parseBody(Response.java:182)
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.api.requests.Response.get(Response.java:124)
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.api.requests.Response.getObject(Response.java:105)
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.api.utils.SessionControllerAdapter.lambda$getGateway$0(SessionControllerAdapter.java:85)
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.internal.requests.RestActionImpl.handleSuccess(RestActionImpl.java:247)
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.internal.requests.RestActionImpl.handleResponse(RestActionImpl.java:237)
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.api.requests.Request.handleResponse(Request.java:197)
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.internal.requests.Requester.lambda$attemptRequest$1(Requester.java:191)
[22:08:55 ERROR] [STDERR]:  at net.dv8tion.jda.internal.requests.FunctionalCallback.onResponse(FunctionalCallback.java:60)
[22:08:55 ERROR] [STDERR]:  at okhttp3.RealCall$AsyncCall.execute(RealCall.java:216)
[22:08:55 ERROR] [STDERR]:  at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
[22:08:55 ERROR] [STDERR]:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[22:08:55 ERROR] [STDERR]:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[22:08:55 ERROR] [STDERR]:  at java.lang.Thread.run(Thread.java:748)
[22:08:55 ERROR] [STDERR]: Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper
[22:08:55 ERROR] [STDERR]:  at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:101)
[22:08:55 ERROR] [STDERR]:  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
[22:08:55 ERROR] [STDERR]:  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
[22:08:55 ERROR] [STDERR]:  ... 16 more
...