请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

mvn package生成的jar缺少dependency的class文件

按着老师视频给course-dubbo-service设置好了spring-boot-maven-plugin的repackage 按道理运行mvn package生成的jar应该包含其他dependency比如来自course-dubbo-service-api module的CourseDTO class

但是jar里面是缺少CourseDTO 这个故障也导致了运行时候抛出ClassNotFound异常

能否请经验丰富的老师或者同学给些排查错误的建议 非常感谢!

我的代码可在这里找到:https://github.com/cutePanda123/online-learning-platform-server

我做了如下验证和排查

  1. course-dubbo-service的pom.xml指定了course-dubbo-service-api作为dependency

  2. 比较了mvn pacakge生成的xxx.jar和xxx.jar.original文件 前者确实包含更多文件但是没有CourseDTO的class

    具体运行过程和排错过程如下

生成jar文件的方式:在project根目录下运行mvn -pl course-dubbo-service package

查错过程:jar tf course-dubbo-service/target/course-dubbo-service-1.0-SNAPSHOT.jar | grep CourseDTO  没有任何输出

https://img1.sycdn.imooc.com//szimg/61a3eb6b09a4bb8d24060448.jpg

正在回答 回答被采纳积分+3

1回答

刘果国 2021-11-29 10:13:16

mvn的各个module的依赖package的结果是以jar的形式出现的,只有当前module的才是class形式。所以你要去找CourseDTO所在module的jar包

0 回复 有任何疑惑可以回复我~
  • 提问者 爱笑的小熊猫 #1
    谢谢老师回复 我的疑惑是 course-dubbo-service的jar里面如果没有CourseDTO那么运行这个jar就会出现classnotfound exception 能否请老师帮助讲解下course-dubbo-service jar是如何获取依赖的class的比如这里的CourseDTO
    回复 有任何疑惑可以回复我~ 2021-12-01 13:08:03
  • 刘果国 回复 提问者 爱笑的小熊猫 #2
    jar包里除了class还有其他东西哦,可以把它解压开看看就知道答案
    回复 有任何疑惑可以回复我~ 2021-12-02 17:08:21
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信