Я только что исправил java.lang.NoClassDefFoundError во время загрузки сервера в моем коде Scala, вызванный несовместимыми библиотеками. Есть ли способ написать тест для исключения таких ошибок, например, путем принудительной загрузки всех классов в пути к классам?
Я думаю, что класс, вызывающий эту ошибку, был удален в более поздних версиях библиотеки, но от этого зависит старый код в другой библиотеке.
В этом есть смысл. Если вы можете заполучить старую библиотеку, вы можете переместить ее с помощью плагина тени в своем сценарии сборки. Таким образом, вы можете использовать две версии одной и той же библиотеки.




Это не может быть решено с помощью модульного теста, поскольку модульный тест, возможно, работает с другим путем к классам. Лучшее, что вы можете сделать, - это привести к сбою сборки в случае конфликта версий. Это возможно с любым инструментом сборки.
Как несовместимые библиотеки вызывают
NoClassDefFoundError? Я могу понять, был ли этоMethodNotFoundError, поскольку разные версии классов могут перезаписывать друг друга в пути к классам.