验证中...
问题描述:
Raw Copy
公司要对旧项目做微服务化改造,
于是重新用了分布式结构创建新项目,
设计是有一个项目core里面存的是公用的实体类和接口
其他业务项目全都依赖它
但是我创建的业务项目依赖它之后,反复安装了core,都成功了
pom也没报错, 依赖也没报错, 甚至按住ctrl点击导入的包都能直接点到core项目里面
但就是启动和install业务项目的时候会报错,说找不到core里面的包和类
真是百思不得其解
解决办法:
Raw Copy
网上看到一篇文章:https://blog.csdn.net/huofuman960209/article/details/93861051
说不要在Common的pom中定义spring-boot-maven-plugin插件
Spring Boot Maven plugin的5个Goals
spring-boot:repackage,默认goal。在mvn package之后,再次打包可执行的jar/war,同时保留mvn package生成的jar/war为.origin
spring-boot:run,运行Spring Boot应用
spring-boot:start,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理
spring-boot:stop,在mvn integration-test阶段,进行Spring Boot应用生命周期的管理
spring-boot:build-info,生成Actuator使用的构建信息文件build-info.properties
原文:
最近在学习springclud项目,多个模块化相互关联引用的时候公共模块common在引用后打包失败,因为是个javaEE项目不是springboot项目,使用的构建工具是maven,项目分了很多模块,并且模块之间还存在一定的依赖,比如说一个项目common是提供各项目通用的工具类,公共的类等
例子:项目root,有module common,front,mall等其中front 和mall都依赖于common,将来需要上线部署的也是front和mall项目,所以两个项目是要进行打包,也就是这个打包操作,让我浪费了好多时间,这里都是我亲身经历的血泪史。。
当使用Maven对front项目直接进行package时,提示依赖于common的jar包找不到。因为直接对front打包,common并没有被打包,依赖关系无法保持。这时你要做的就是,首先对项目common进行install,
注意!注意!这里有一个巨坑,我已经义无反顾的跳进去一次了,大家一定不要再往里面跳了:Common打包出来的应该是不可执行的jar包,所以不要在Common的pom中定义spring-boot-maven-plugin插件,因为这个SpringBoot插件会在Maven的package后进行二次打包,目的为了生成可执行jar包,如果C中定义了这个插件,会报错提示没有找到main函数。这时你就可以去打包front项目了,当然打包的时候可能还是不行,这里还有一个小坑,如果还是不能进行打包的话,那么就install一下root项目,也就是总目录下的pom文件对应的install操作,这样再打包front项目基本上就没有问题了,老铁,都是经验呀,希望对你们有帮助

Comment list( 0 )

Sign in for post a comment

Help Search