关于微服务多模块依赖共存和打包问题

1、首先需要了解到springboot项目打包的时候会生成两个jar包

这两个jar包的区别在于一个是普通的可被引用的,一个是可被执行的,但是通常可被引用的jar包会被可被执行的jar包所覆盖
这会导致当你其他微服务模块需要调用这个springboot模块时,会找不到引用的问题,例如将权限功能做成一个springboot项目,当你的其他业务模块需要调用到权限这方面的验证时,你导入了权限的依赖,但是在打包install的时候,就会提示找不到jar包的问题
因此解决问题的思路就是要避免springboot项目在打包时将可引用包覆盖。
解决办法:

<build>
 <plugins>
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 <!--命名可执行jar名字,默认可执行Jar包与普通jar命名相同,前者会将后者覆盖,可执行Jar不能够被其他模块引用-->
 <configuration>
 <classifier>exec</classifier>
 </configuration>
 </plugin>
 </plugins>
 </build>

2、普通项目直接导入依赖即可

3、导入springboot项目还有一个需要注意的问题,这个问题如果没有注意的话,在你启动项目的是就会遇到了

启动项目时会提示你说哪些service找不到例如这个错误

[ERROR] 2020-10-16 10:19:29.235 [main] o.s.b.d.LoggingFailureAnalysisReporter -  
*************************** 
APPLICATION FAILED TO START
 *************************** 
Description: A component required a bean of type 'com.csd.cloud.auth.service.AuthUserService' that could not be found.
 Action: Consider defining a bean of type 'com.csd.cloud.auth.service.AuthUserService' in your configuration. Disconnected from the target VM, address: '127.0.0.1:52694', transport: 'socket' Process finished with exit code 1

这个问题是由于要运行的这个模块的启动项扫描的范围仅在本模块内,不包含你所导入的模块,所以即便加了注解,spring也没法注入你的service层
解决的办法便是扩大启动类的扫描范围,例如:

@SpringBootApplication(scanBasePackages = {"com.csd.cloud.auth", "com.csd.cloud.nas"})

这是自己做项目时碰到的问题,部分是从网上找到解决的,内容是自己整理的,希望对你们也有所帮助,目前还处于新手期,有什么问题还请指点一下

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值