使用Spring boot开发,将程序和资源分别打包的方法

需求

项目代码使用Spring boot 框架,由于Spring boot集成了tomcat,所以就不再打成war包了,直接打成jar包运行。但项目内容较多,产生了大量的依赖包,同时还有各种资源文件,想要将主程序、依赖以及配置文件分别打包。

解决方案

1 使用maven插件

pom中为build增加标签,内容为打包后jar的名称。
增加plugin:

            
                org.apache.maven.plugins
                maven-jar-plugin
                
                    
                    
                        *.**
                        */*.xml
                    
                    
                        
                            true
                            
                            lib/
                            
                            false
                            
                            xxx.xxx.xxx.xxApplication
                        
                        
                            
                            ./resources/
                        
                    
                    ${project.build.directory}
                
            
            
            
                org.apache.maven.plugins
                maven-dependency-plugin
                
                    
                        copy-dependencies
                        package
                        
                            copy-dependencies
                        
                        
                            ${project.build.directory}/lib/
                        
                    
                
            
            
            
                maven-resources-plugin
                
                     
                        copy-resources
                        package
                        
                            copy-resources
                        
                        
                            
                                
                                    src/main/resources
                                    
                                        
                                    
                                
                            
                            ${project.build.directory}/resources
                        
                    
                
            
            
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                    
                        
                            null
                            null
                        
                    
                    ZIP
                    
                    true
                    ${project.build.directory}/resources
                
                
                    
                        
                            repackage
                        
                        
                            
                            
                            
                        
                    
                
            

2 spring-boot-starter-web依赖的修改

打包插件使用了log4j2作为日志框架,所以需要去掉springboot的默认log框架logging,同时增加log4j2依赖,具体如下:

      
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        
         
            org.springframework.boot
            spring-boot-starter-log4j2
        

3 打包指令及生成文件

直接再Terminal中执行

mvn package

打包成功后,会在target文件夹下生成内容。主要包括:
1.XXX.jar —— 主程序,程序运行执行的jar
2.lib —— 依赖包
3.resources —— 资源文件,其下还会有一个XXX.jar

这样在每次程序更新后,如果依赖或者资源没有变化的情况下,只需要更新对应的两个jar包就可以了。

另外,一个容易忽略的地方
打包的时候会执行test程序,所以需要保证Test主类以及contextLoads方法是public。

你可能感兴趣的:(使用Spring boot开发,将程序和资源分别打包的方法)