springboot多模块打包后,无法扫描子包jar中的注解,哪位大神遇到过?

equilibrium_sleeper 发布于 2017/06/05 11:54
阅读 20K+
收藏 1

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>

哪位大神有这样的配置指点一下,或者有别的解决方法也可。

加载中
0
哎码
哎码
https://git.oschina.net/consolelog/spring-boot-modules.git
equilibrium_sleeper
equilibrium_sleeper
回复 @开源--LOVE : 你的是什么问题?
开源--LOVE
开源--LOVE
回复 @equilibrium_sleeper : 你是怎么解决的?我这还是不行啊
equilibrium_sleeper
equilibrium_sleeper
回复 @哎码 : 多谢例子,已经解决,经对比,我的打包build配置写在了父pom中,改到主pom中就可以了,可能是子模块用springboot的默认打包方式会加上org.springframework的路径的缘故,取消继承build,就好了
哎码
哎码
我这为啥没问题呢
0
lxq004
lxq004

你好,解决了?我也碰到了同样的问题。

equilibrium_sleeper
equilibrium_sleeper
@SpringBootApplication(scanBasePackages={"com.news.*"})
0
开源--LOVE
开源--LOVE
在模块中也加上boot启动类,按正常启动jar 那种,加上注解等,然后再在需要的模块中将原先的启动类中的参数改成入参为数组将两个启动类加入数组
0
开源--LOVE
开源--LOVE
另外boot插件不用加别的东西
0
FnuJava
FnuJava

<!--               <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    指定该Main Class为全局的唯一入口
                    <mainClass>com.sz.youban.AgentApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>可以把依赖的包都打包到生成的Jar包中
                        </goals>
                    </execution>
                </executions>
            </plugin> -->

 

把main那个换成你自己的就可以  

0
开源--LOVE
开源--LOVE

可以这样解决:

其中红框为需要加载的jat包中的启动类

返回顶部
顶部