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

来源:4-1 服务docker化(上)

爱笑的小熊猫

2021-11-29

按着老师视频给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  没有任何输出

http://img.mukewang.com/szimg/61a3eb6b09a4bb8d24060448.jpg

写回答

1回答

刘果国

2021-11-29

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

0
2
刘果国
回复
爱笑的小熊猫
jar包里除了class还有其他东西哦,可以把它解压开看看就知道答案
2021-12-02
共2条回复

Docker+Kubernetes(k8s)微服务容器化实践

从开发到编排,快速,完整,深入的掌握微服务

2608 学习 · 607 问题

查看课程