ClassNotFoundException: net.minidev.json.JSONObject

Возникает ошибка при попытке добавить зависимость spring-security-oauth2-client.

Caused by: java.lang.ClassNotFoundException: net.minidev.json.JSONObject
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
    at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]
    at org.springframework.security.oauth2.client.registration.ClientRegistrations.lambda$oidc$0(ClientRegistrations.java:164) ~[spring-security-oauth2-client-6.1.8.jar:6.1.8]

json-smart добавлен в зависимости

dependencies {
    ...
    implementation 'net.minidev:json-smart:2.5.1'
    ...
}

Так же в проект подключен bom: org.camunda.bpm:camunda-bom

api(enforcedPlatform('org.camunda.bpm:camunda-bom:7.20.0'))

И подключена соответствующая зависимость camunda.spin.dataformat:

dependencies {
    ...
    implementation 'camunda.spin.dataformat'
    implementation 'net.minidev:json-smart:2.5.1'
    ...
}

Обратил внимание на то что внутри используется конструкция relocations ( https://github.com/camunda/camunda-bpm-platform/blob/3f6cb3055232c0fa9958e7a351af6ea0eafd7bb2/spin/dataformat-all/pom.xml#L79 )

pom.xml:

...
<relocations>
    <relocation>
      <pattern>net.minidev</pattern>
      <shadedPattern>spinjar.com.minidev</shadedPattern>
    </relocation>
    ...
</relocations>
...

И действительно JSONObject можно вызвать по пути spinjar.com.minidev.json.JSONObject. Как можно провернуть этот фарш назад ? Чтобы spinjar.com.minidev.json.JSONObject стал снова net.minidev.json.JSONObject ?


Ответы (1 шт):

Автор решения: Никита Соколов

Оказалось, что я сам себе навредил. Когда то исключил данную либу ( json-smart ) из проекта. И причем исключил по одному только называнию зависимости. И забыл.

...
  configurations {
    configureEach {
      ...
      exclude module: 'json-smart'
      ...
    }
  }
...

Искал где исключается зависимость и искал по названию группы net.minidev. Соответственно ничего не мог найти. Нашел ту штуку с <relocations>, сделал неправильные вывод и запутался.

Убрал лишний exclude и все заработало.

→ Ссылка