本文主要是介绍spring.factories配置的内容读取不到,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
springboot项目的spring-boot-maven-plugin打包工具 <plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><skip>true</skip></configuration><executions><execution> <goals><goal>repackage</goal></goals> </execution></executions></plugin> </plugins>
executions的repackage部分可以不需要,打包后效果一样。skip为true打包后结果如下(整个插件都不配置也是一样的效果):
去掉skip部分打包后如下:多了boot的东西,自己的代码则放在BOOT-INF里面了
我新建的一个springboot项目只是增加了spring.factories和一个配置类,之前用的别人的springboot工程没问题,自己添加的却死活加载不了。将springboot读取的部分代码拷贝出来执行
就是获取不到对应自己jar文件,只有spring自己的
file:/E:/repo/org/springframework/boot/spring-boot/2.2.5.RELEASE/spring-boot-2.2.5.RELEASE.jar!/META-INF/spring.factories
file:/E:/repo/org/springframework/boot/spring-boot-autoconfigure/2.2.5.RELEASE/spring-boot-autoconfigure-2.2.5.RELEASE.jar!/META-INF/spring.factories
file:/E:/repo/org/springframework/spring-beans/5.2.4.RELEASE/spring-beans-5.2.4.RELEASE.jar!/META-INF/spring.factories
在第一个截图中发现有两个META-INF,而之前别人的工程打包之后只有一个。调整了springboot的版本,依赖包始终没有解决。spring.factories只是在一个META-INF中,就是导致找不到我们自己打的jar包。
手动到install之后jar包删除多余的一个META-INF测试依然没解决。
手动复制META-INF然后Refactor-》Rename 把这个名字又覆盖了一下,发现之前是目录的小图标变了树型图标
,再次打包install之后
两个目录都有spring.factories文件,再次执行代码找到了我们的jar
file:/E:/repo/io/renren/dynamicdatasource/0.0.1-SNAPSHOT/dynamicdatasource-0.0.1-SNAPSHOT.jar!/META-INF/spring.factories
之前是自己手动创建的META-INF目录,不知道为啥会导致这样的问。
这篇关于spring.factories配置的内容读取不到的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!