springboot多模块打包后,无法扫描子包jar中的注解,哪位大神遇到过?
springboot多模块打包问题:本人新建了一个springboot项目,后想扩展为多模块形式,增强扩展性,但发现springboot无法扫描到子模块中的注解,后在启动类中加入扫描路径,springboot在IDE中成功启动,子模块中的注解也可以扫描到了,如下。
@SpringBootApplication(scanBasePackages={"com.news.*"})
@MapperScan({"com.news.dao"})
启动后如下:
可见已经成功启动服务并扫描出子包中的注解,经测试可以正常使用,
使用spingboot自带的插件打包并指定入口,且子包依赖也正常,打包后启动
服务依旧正常启动,不过子包中的注解没有被扫描到,据查子包被打成jar包后路径有问题,必须将子包中的路径加入清单文件,不过我不知道maven怎么加?网上的一些配置不管用
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>true</addMavenDescriptor>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Implementation-Build>${buildNumber}</Implementation-Build>
</manifestEntries>
</archive>
</configuration>
</plugin>
哪位大神有这样的配置指点一下,或者有别的解决方法也可。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
可以这样解决:
其中红框为需要加载的jat包中的启动类
另外boot插件不用加别的东西
在模块中也加上boot启动类,按正常启动jar 那种,加上注解等,然后再在需要的模块中将原先的启动类中的参数改成入参为数组将两个启动类加入数组
@SpringBootApplication(scanBasePackages={"com.news.*"})
我这为啥没问题呢
回复
@哎码 : 多谢例子,已经解决,经对比,我的打包build配置写在了父pom中,改到主pom中就可以了,可能是子模块用springboot的默认打包方式会加上org.springframework的路径的缘故,取消继承build,就好了
回复
你是怎么解决的?我这还是不行啊
回复
你的是什么问题?