在使用maven-shade-plugin插件时,报个错误:
Exception in thread \"main\" java.lang.NoClassDefFoundError: org/eclipse/jetty/server/Handler
at com.waylau.lite.App.main(App.java:13)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.server.Handler
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 1 more
这个错误,在eclispe里面右键允许应用是不会有的。但使用maven-shade-plugin插件打包为可执行的jar时出现了。
问题原因
仔细排查了pom. 文件发现了问题:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
<scope>provided</scope>
</dependency>
在引用jetty-servlet时,scope设置为了provided,意味着打包时,这个依赖不会被打进去。
要想不报错,只要把这个依赖打包进去jar即可。
解决方法
修改如下解决:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
</dependency>
源码
继续阅读与本文标签相同的文章
-
RocketMQ消息轨迹-设计篇
2026-05-18栏目: 教程
-
前端进阶|第七天 携程笔试题,嵌套数组去层级去重并排序
2026-05-18栏目: 教程
-
阿里巴巴“新六脉神剑”背后的故事
2026-05-18栏目: 教程
-
阿里巴巴20周年年会结束以后,你知道发生了什么吗?
2026-05-18栏目: 教程
-
13年IT老兵:闷头做智能家居体系容易走火入魔
2026-05-18栏目: 教程
