打jar包不能将yml文件打包进去

在idea中运行成功,但打成jar包之后报错获取不到参数的值,查看jar包中没有yml文件:

打jar包不能将yml文件打包进去_第1张图片

在com文件包同级目录下应该有配置文件才对。

原因:

因为在父模块的pom.xml重新编写了资源打包策略,覆盖了maven的资源打包策略。(maven默认会将资源目录resources下的资源文件进行打包,而如果在pom.xml中配置了resources标签,则默认的打包策略会被覆盖掉,只会打包resources标签中配置的资源文件)

打jar包不能将yml文件打包进去_第2张图片

 此时只扫描打包src/main/java文件夹路径下的资源,而没有配置扫描src/main/resources路径下的资源,所以在其子模块中的资源打包策略也被修改了。

 解决方案:

方法一:

在子模块的pom.xml文件中添加以下资源打包策略配置(扫描资源目录下的资源文件):


        
            src/main/resources
            
                **/*.yml
                **/*.properties
                **/*.xml
            
            false
        
    

打jar包不能将yml文件打包进去_第3张图片

方法二:

在父模块的pom.xml文件下配置完整的资源打包策略,将src/main/resources路径下的资源也配置进入资源打包策略配置:


    
        
            src/main/java
            
                **/*.yml
                **/*.properties
                **/*.xml
            
            false
        
        
            src/main/resources
            
                **/*.yml
                **/*.properties
                **/*.xml
            
            false
        
    

打jar包不能将yml文件打包进去_第4张图片

之所以要自定义资源打包策略是因为maven默认的资源打包策略是不会将javaresources文件夹下的xml文件进行扫描打包的。

 结果:

之后maven -> package,打包之后可以看到jar包中将yml文件打包进去了:

打jar包不能将yml文件打包进去_第5张图片

你可能感兴趣的:(部署,jar,java,intellij-idea)