Maven多模块项目管理jar包最佳实践

在使用Maven包管理进行工程开发的时候,经常会遇到jar包版本难统一,有冲突难排查的情况。

尤其是子模块比较多的时候,模块间的jar包版本统一问题显得尤其重要。

所以在这里推荐一种个人认为最佳实践的方法。

Maven多模块项目管理jar包最佳实践_第1张图片

如上图,这个项目有一个子模块,需要两个pom文件,一个父pom,一个子pom。

父pom的主要功能:1 定义项目的一些基本属性; 2 整个项目所引用的jar包的版本管理。

子pom的主要功能:1 定义自己所依赖的模块;2 定义自己模块儿下面需要使用的jar包

 

看下面的父pom配置:



    4.0.0

    com.wlh
    wlh-root
    pom
    1.0-SNAPSHOT
    
        mvn-tbbpm
    
    
    
        
            junit
            junit
        
        ******
        
            com.alibaba
            fastjson
        
    


    
    
        
            
                junit
                junit
                4.11
                test
            
            
            
                org.slf4j
                slf4j-api
                1.7.12
            
            *****
            
                com.alibaba
                fastjson
                1.2.8
            
        
    

使用dependencies标签定义整个项目中都需要用到的jar包(junit和fastjson)

使用dependencyManagement标签管理整个项目中jar包的版本,这里不仅定义了junit, fastjson的版本,还定义了slf4j-api的版本。

经过了上面的配置以后,子pom就不需要关心所依赖的版本,那些通用的依赖也不需要再单独配置,简单明了。



    
        wlh-root
        com.wlh
        1.0-SNAPSHOT
    
    4.0.0

    mvn-tbbpm

    
        
        
            org.slf4j
            slf4j-api
        
    

子pom只需要关心自己模块儿需要依赖的jar包就可以,版本管理可以交由父pom来控制。

 

这么做第一能够是配置高度统一,出了问题也好定位。

第二能够使版本管理变得简单有序。

第三,最重要的就是方便排包,如果出现包冲突,通过这个方法能够更好的定位并解决冲突。

具体排包可以参考另一篇博客:Maven解决包冲突 https://my.oschina.net/u/3755458/blog/1649938

 

转载于:https://my.oschina.net/u/3755458/blog/1649959

你可能感兴趣的:(Maven多模块项目管理jar包最佳实践)