Maven实战(二)---多模块开发---缺少Jar包

Maven里面的Jar包经常出现Missing的情况,无外乎几种情况:

1、私服里面没有相应的版本号的Jar包或者Jar包没写版本号

2Jar包引错了,相应的依赖关系也就错了

3、引入了依赖的Jar包,没被管理起来


       第一二个问题解决起来挺简单的,第三个问题对于不理解Maven的还需要解决一番。

       其实第三个问题就存在与Maven<dependencies>节点与<dependencymanagement>节点。

                     <dependencies>节点是项目依赖,项目所依赖的Jar包;

                    <dependencymanagement>节点是多模块Maven项目开发的时候的依赖管理控制的。

         在多模块开发的时候,利用项目继承可以将结构信息、部署信息,将共同的依赖放在一个父类中。每个子项目的pom继承父类的pom中的依赖关系。这样就解决了所有的子项目的依赖项统一版本。所以为了项目的正确运行,必须让而在父类中将这些Jar包管理起来,在父项目的pom中定义共同的依赖关系。这就是依赖管理。

 

来看一下这两个节点的代码:

Project A


 4.0.0
 maven
 A
 pom
 A
 1.0
 
   
     
       test
       a
       1.2
     
     
       test
       b
       1.0
       compile
     
     
       test
       c
       1.0
       compile
     
     
       test
       d
       1.2
     
   
 


Project B


  4.0.0
  maven
  B
  pom
  B
  1.0
  
    
      
        maven
        A
        1.0
        pom
        import
      
      
        test
        d
        1.0
      
    
  
  
    
      test
      a
      1.0
      runtime
    
    
      test
      c
      runtime
    
  


区别:

         中的jar直接加到项目中,管理的是依赖关系(如果有父pom,pom,则子pom中只能被动接受父类的版本);<dependencyManagement>主要管理版本,对于子类继承同一个父类是很有用的,集中管理依赖版本不添加依赖关系,对于其中定义的版本,子pom不一定要继承父pom所定义的版本。



你可能感兴趣的:(ITOO,Maven,Maven实战)