У меня есть 2 версии Google Guava, но кот видит только старую версию, обе версии, используемые проектом - PullRequest
0 голосов
/ 22 марта 2020

Я создал небольшую служебную библиотеку, которая зависит от

'com.google.firebase:firebase-admin:6.12.2'

, и я генерирую jar, используя плагин javashadow gradle

, утилита работает нормально в моей локальной JVM, но когда я пытаюсь чтобы запустить его на сервере Tomcat 9, я получаю следующее исключение

    [22-03-2020 16:20:45,005]-[ERROR][pool-1-thread-1][org.springframework.scheduling.support.TaskUtils$LoggingErrorHandler] - Unexpected error occurred in scheduled task.
java.lang.NoSuchMethodError: com.google.common.primitives.Booleans.countTrue([Z)I
    at com.google.firebase.messaging.Message.<init>(Message.java:75)
    at com.google.firebase.messaging.Message.<init>(Message.java:40)
    at com.google.firebase.messaging.Message$Builder.build(Message.java:295)
    at ae.gov.adm.saeed.ActionNotifier.sendActionNotification(ActionNotifier.java:43)
    at ae.gov.adm.saeed.notification.NotificationScheduledServiceTest.someJob(NotificationScheduledServiceTest.java:54)
    at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:65)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
    at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

, после поиска я получаю следующий ответ

https://groups.google.com/forum/#! topic / firebase-talk / 0MAV3b2WT1s

, который говорит, что сервер Tomcat каким-то образом видит старую версию библиотеки Google Guava, и у проекта уже есть старая версия. несмотря на то, что я включил все связанные зависимости в свой файл jar утилиты

, как я могу решить эту проблему

...