maven学习系列8----将resources目录下的文件打包到jar包外

maven默认情况下会把src/main/resources下的文件和class文件一起打到jar包内部,但是有很多场景下都需要把resources下的文件打包到jar包外面,这样修改resources目录下的文件就不需要重新打jar

假设目录结构如下,resources目录下有三个文件

maven学习系列8----将resources目录下的文件打包到jar包外_第1张图片

默认打好的jar包如下,即resources下的文件打到了jar包里面

maven学习系列8----将resources目录下的文件打包到jar包外_第2张图片


如果想resources目录下的部分或者全部文件不打到jar包内部,可以使用manen下面的配置

    
        
            
                src/main/resources
                
                    *.txt
                
                
                    *.xml
                    *.yaml
                
            
        
    

这样a.xml和b.yaml就不会打到jar包中了

maven学习系列8----将resources目录下的文件打包到jar包外_第3张图片

maven还有一个maven-resources-plugin可以实现,在打包的时候把resources目录下的文件拷贝到指定的目录下,这样就不需要用户自己去拷贝了,

         
            
                maven-resources-plugin
                
                    
                        copy-resources
                        validate
                        
                            copy-resources
                        
                        
                            ${project.build.directory}/conf
                            
                                
                                    src/main/resources
                                    true
                                
                            
                        

                    
                
            
        

编译好之后,会在target目录下生成conf目录并且把resources目录下的所有文件都自动拷贝到target/conf/目录下,如下

maven学习系列8----将resources目录下的文件打包到jar包外_第4张图片


联合上一章中的maven配置,就可以实现把工程中对外的依赖(依赖的jar包,依赖的resources文件)打包到jar外面,例如把依赖的jar包打包到lib目录下,把依赖的resources文件打包到conf目录


你可能感兴趣的:(maven)