maven多模块项目打包(springcloud项目,依赖包外置,通用模块并入jar内)

 

情景介绍

 项目应用springcloud架构,多服务划分,每个服务为一个maven子模块。项目中除架构基础服务模块外,有一个通用模块提供公用内容,其他为业务模块。由于业务模块打包后包体较大,不利于备份及上传,故需要将依赖包外置,为避免通用模块代码随业务模块新增修改之后遗漏上传jar,需将通用模块打入jar内。

方案

方案一:将通用模块的jar解压缩到业务模块的编译目录,再打成jar。最后将依赖包复制到自定义目录

 

 
    ${name}
        
        
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
                true
            
            
                src/main/resources
                
                
                false
            

        

        
    
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.8
                    1.8
                    UTF-8
                
            

            
            
                org.apache.maven.plugins
                maven-dependency-plugin
                
                    
                        unpack
                        generate-resources
                        
                            unpack
                        
                        
                            
                                
                                    com.liqun.crm.common
                                    common-module
                                    ${common.module.version}
                                    jar
                                    true
                                    ./target/classes
                                
                            
                        
                    
                
            
            
            
                org.apache.maven.plugins
                maven-jar-plugin
                
                    
                        ${jar.directory}/${name}/
                    
                    
                        
                            true
                            lib
                            
                            com.liqun.grade.CrmGradeApplication
                        
                        
                            ../
                        
                    
                    
                
            

            
            
                org.apache.maven.plugins
                maven-dependency-plugin
                
                    
                        copy
                        package
                        
                            copy-dependencies
                        
                        
                            
                                ${jar.directory}/lib
                            
                        
                    
                
            


        

    

方案二:使用内嵌ant脚本的方式由ant打包

 
        ${name}

        
            
                org.apache.maven.plugins
                maven-dependency-plugin
                
                    
                        copy
                        package
                        
                            copy-dependencies
                        
                        
                            
                                ${project.build.outputDirectory}/lib
                            
                            
                                common-module
                            
                        
                    
                
            

            
                maven-antrun-plugin
                1.8
                
                    
                        package
                        
                            run
                        
                        
                            
                                
                                
                                
                                
                                
                                
                                
                                
                                    
                                
                            
                        
                    
                
            
        

    

jar.xml内容如下




    
        
        
            
                
                
                    
                    
                    
                
            
            
        
        
            
                
                
            
            
            
        
        
            
                
                
                
            
        
    

注意:通用模块非可执行jar,故不需要添加build配置。父pom中亦无需设置

你可能感兴趣的:(tools)