Maven中 的作用及使用

在Maven中的作用其实相当于一个对所依赖jar包进行版本管理的管理器。

在dependencyManagement下申明的dependencies,Maven并不会去实际下载所依赖的jar包,而是在dependencyManagement中用一个Map记录了jar的三维坐标。

而被dependencies包裹的元素,Maven是会去仓库实际下载所需要的jar包的,而至于需要下载什么版本的jar包就有两种判断途径:

1:如果dependencies里的dependency自己没有声明version元素,那么maven就会到里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你必须为dependency声明一个version

2:如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。

例子:

//只是对版本进行管理,不会实际引入jar

      
            
                org.springframework
                spring-core
                3.2.7
            
    

//会实际下载jar包

       
                org.springframework
                spring-core
       

可以看到dependecies元素下的dependency里并没有声明版本,这是因为在manager中已经将版本管理起来了。

当使用 时,很多情况下是在父工程中进行版本管理,在子工程中引入,可以统一的控制子工程中引入的jar版本。

例:

parent project



    4.0.0
    com.cfcc.tsms
    tsms-parent
    pom
    1.0-SNAPSHOT

    
        org.springframework.boot
        spring-boot-starter-parent
        1.5.9.RELEASE
         
    

    
        3.3.2
        1.3.2
        1.3
    

    
        
            
            
                org.apache.commons
                commons-lang3
                ${commons-lang3.version}
            
            
                org.apache.commons
                commons-io
                ${commons-io.version}
            
            
                commons-fileupload
                commons-fileupload
                ${commons-fileupload.version}
            
        
    

child project 1



    
        tsms-parent
        com.cfcc.tsms
        1.0-SNAPSHOT
    
    4.0.0
    tsms-web

    
        
			org.apache.commons
			commons-lang3
        
		
			org.apache.commons
			commons-io
		
		
			commons-fileupload
			commons-fileupload
		
    

 

你可能感兴趣的:(maven,java,基础知识)