maven编译jar包时打一个瘦包,依赖包和配置文件到jar包外面

背景

        打的jar包很大

           很多时候我们在开发的时候,maven的依赖包非常多,导致我们最后打的一个jar包有一百多MB,需要将包上传到liunx环境耗时非常久,很多时候我们并没有改变依赖包,而只是改变我们的逻辑代码,结果重新上传包的时候,这些依赖包需要重新上传一次,费时费力。

        抽取配置文件

          有时候我们将jar包上传linux环境,发现jar包依赖的配置文件(例如:application.yml)需要修改,最不好的一种方式是线下idea重新修改配置,重新打包上传,折中的一种方式是直接 vim jar包,找到配置文件,修改jar包里面的配置文件,保存退出,然后重启jar包,但是这种方式也比较麻烦。

解决方案

        可以使用maven插件来将 项目所有的依赖包  和 配置文件 抽取到要打的jar包的外面,这样我们的一个jar包就只有 几十kb 大小,如果不涉及到更改依赖的话,上传这样一个包是非常方便的。

因为jar包依赖的配置文件现在都在jar包的外面,所以只需要在jar包外面修改配置文件,然后重启jar包就可以生效了


            
            
            
            
                org.apache.maven.plugins
                maven-jar-plugin
                
                    
                    
                        bin/**
                        config/**
                        static/**
                        templates/**
                        *.yml
                        *.xml
                    

                    
                        
                            true
                            
                            dependencyJars/
                            
                            false
                            
                            com.test.Main
                        
                        
                            ../conf/
                        
                    
                    ${project.build.directory}
                
            

            
            
            
                org.apache.maven.plugins
                maven-dependency-plugin
                
                    
                        copy-dependencies
                        package
                        
                            copy-dependencies
                        
                        
                            ${project.build.directory}/dependencyJars/
                            false
                            false
                            true
                        
                    
                
            

            
            
            
                org.apache.maven.plugins
                maven-resources-plugin
                
                    
                        copy-resources
                        package
                        
                            copy-resources
                        
                        
                            UTF-8
                            
                                
                                    src/main/resources
                                
                            
                            ${project.build.directory}/../conf
                        
                    
                
            

            
            
                org.apache.maven.plugins
                maven-surefire-plugin
                
                    true
                
            

            
            
                org.apache.maven.plugins
                maven-clean-plugin
                
                    
                        
                            ${basedir}/conf
                        
                        
                            ${basedir}/dependencyJars
                        
                    
                
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    8
                    8
                
            
        

效果展示:

maven编译jar包时打一个瘦包,依赖包和配置文件到jar包外面_第1张图片

maven编译jar包时打一个瘦包,依赖包和配置文件到jar包外面_第2张图片

maven编译jar包时打一个瘦包,依赖包和配置文件到jar包外面_第3张图片 maven编译jar包时打一个瘦包,依赖包和配置文件到jar包外面_第4张图片

你可能感兴趣的:(JAVA,大数据,maven,jar,linux,配置)