Разрешение зависимостей с помощью плагина Shade для NoClassDefFoundError
При первом опыте работы с Maven могут возникнуть несоответствия между Eclipse и использованием командной строки из-за управление зависимостями. Несмотря на успешное создание проекта Maven и добавление зависимостей в Eclipse, выполнение проекта через командную строку может привести к ошибке NoClassDefFoundError.
По умолчанию Maven упаковывает зависимости отдельно и не включает их в скомпилированный файл JAR. Это упущение приводит к сбою виртуальной машины Java при попытке найти классы библиотек во время выполнения.
Вместо того, чтобы вручную добавлять библиотеки в путь к классам, плагин maven-shade-plugin обеспечивает более эффективное решение. Он создает «uber-JAR», который объединяет классы приложения с необходимым библиотечным кодом.
Чтобы реализовать это, добавьте в POM следующую конфигурацию плагина:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin>
После добавления этой конфигурации повторно запустите следующие команды:
$ mvn package $ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App
Для расширенных параметров конфигурации, таких как указание включенных JAR-файлов или исполняемого JAR-файла, обратитесь к разделу «Примеры» на веб-сайте maven-shade-plugin.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3