SpringBoot多模块项目利用reversion占位符,进行版本管理.打包时版本号不能识别问题

1 问题分析

在多模块的SpringBoot项目中,利用reversion占位符,进行版本管理。单独打包子项目时,不能将${reversion}替换成版本号,找不到依赖,导致打包失败。

项目结构如下图,version标签中,使用${reversion}占位。子模块中parent标签中版本号也使用的${reversion}。model-user-biz模块在打包的过程中${reversion}未被替换成版本号,导致依赖找不到,打包失败。

SpringBoot多模块项目利用reversion占位符,进行版本管理.打包时版本号不能识别问题_第1张图片

SpringBoot多模块项目利用reversion占位符,进行版本管理.打包时版本号不能识别问题_第2张图片

SpringBoot多模块项目利用reversion占位符,进行版本管理.打包时版本号不能识别问题_第3张图片

2 解决办法

父模块maven中引入flatten-maven-plugin插件,打包的时候会自动生成.flattened-pom.xml文件作为当前项目的pom文件, 其中的${reversion}被替换成了版本号。

SpringBoot多模块项目利用reversion占位符,进行版本管理.打包时版本号不能识别问题_第4张图片


    
    
    
        org.codehaus.mojo
        flatten-maven-plugin
        ${maven-flatten-maven-plugin.version}
        
            
            pom-xml-flattened
            true
            resolveCiFriendliesOnly
        
        
            
                flatten
                process-resources
                
                    flatten
                
            
            
                flatten-clean
                clean
                
                    clean
                
            
        
    

生成的文件,如下图所示

SpringBoot多模块项目利用reversion占位符,进行版本管理.打包时版本号不能识别问题_第5张图片

如果插件下载失败,可以使用依赖的形式将其下载,再将依赖坐标删除。

SpringBoot多模块项目利用reversion占位符,进行版本管理.打包时版本号不能识别问题_第6张图片

你可能感兴趣的:(spring,boot,java,spring)