spring.factories配置的内容读取不到

springboot项目的spring-boot-maven-plugin打包工具

    
        org.springframework.boot
        spring-boot-maven-plugin
        
            true
        
        
                                        
                        
                            repackage
                                                                
                    
          
    

executions的repackage部分可以不需要,打包后效果一样。skip为true打包后结果如下(整个插件都不配置也是一样的效果):

spring.factories配置的内容读取不到_第1张图片

去掉skip部分打包后如下:多了boot的东西,自己的代码则放在BOOT-INF里面了

spring.factories配置的内容读取不到_第2张图片

我新建的一个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

spring.factories配置的内容读取不到_第3张图片

在第一个截图中发现有两个META-INF,而之前别人的工程打包之后只有一个。调整了springboot的版本,依赖包始终没有解决。spring.factories只是在一个META-INF中,就是导致找不到我们自己打的jar包。

手动到install之后jar包删除多余的一个META-INF测试依然没解决。

手动复制META-INF然后Refactor-》Rename 把这个名字又覆盖了一下,发现之前是目录的小图标变了树型图标

,再次打包install之后

spring.factories配置的内容读取不到_第4张图片

两个目录都有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)