Maven的依赖

**

Maven中的依赖

**

<dependencies>
   	<dependency>
   	    <groupId>com.mchange</groupId>
   	    <artifactId>c3p0</artifactId>
   	    <version>0.9.5.2</version>
          <scope></scope>
   	</dependency>
   </dependencies>

maven中的依赖关系对于新手来说其实可以理解为继承关系,简单来说就是子项目依赖父项目从而使用父项目中的包和工具。

  1. 依赖的范围(scope)
    即在上面的中填写的内容。

    (1)Compile:缺省值,适用于所有阶段,会随着项目一起发布
    (2)Provider:类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar(javaee)
    (3)Runtime:只在运行时使用,如JDBC驱动,适用运行和测试阶段。
    (4)Test:只在测试时使用,用于编译和运行测试代码。不会随项目(mvn install)发布。
    (5)System:类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

  2. 依赖管理器
    dependencyManagement和dependencies

    dependencyManagement:只能在父项目中出现,在下面写的jar包必须带上版本号;

    dependencies:下面写的jar包可以不带版本号;如果木有去父项目中找依赖管理器;或者dependencies

    以导c3p0为例,修改pom.xml文件如下

父项目demoMav的pom.xml


	4.0.0
	com.jinghangzz
	demoMav
	0.0.1-SNAPSHOT
	pom
	demoMav
	demoMav
	
		demoMav-childA
		demoMav-childB
	
	
	
	
		
		0.9.5.2
	
	
	
	
	
		
			
			    com.mchange
			    c3p0
			   
			   
			   ${c3p0.version}
			
		
	
	
	
	
		
		
			
			
			    org.apache.maven.plugins
			    maven-compiler-plugin
			    3.8.0
			    
			    	
			    	1.8
			    	1.8
			    	UTF-8
			    
			
			
			
			
			    org.apache.maven.plugins
			    maven-source-plugin
			    3.0.1
			    
			    	
			    	true
			    
			    
			    	
			    		
			    		compile
			    		
			    		
			    			jar
			    		
			    	
			    
			
			
			
			
				org.apache.maven.plugins
				maven-resources-plugin
				
					UTF-8
				
			
			
			
			
				org.apache.maven.plugins
				maven-surefire-plugin
				
					true
				
			
		
	

子项目demoMav-childA的pom.xml


	4.0.0
	
		com.jinghangzz
		demoMav
		0.0.1-SNAPSHOT
	
	demoMav-childA
	demoMav-childA
	demoMav-childA
	
	
		
		
		    com.mchange
		    c3p0
		
	

依赖管理器最重要的一点就是只能在父项目中有,且必须带上版本号,子项目中不带版本号。

注意,以上的依赖关系都是在有依赖管理器(dependencyManagemen)的前提下,而没有管理器的时候版本号还是该带就带的。如

子项目demoMav-childB的pom.xml,子项目demoMav-childB依赖子项目demoMav-childA


	4.0.0
	
		com.jinghangzz
		demoMav
		0.0.1-SNAPSHOT
	
	demoMav-childB
	demoMav-childB
	demoMav-childB
	
		
			com.jinghangzz
			demoMav-childA
			0.0.1-SNAPSHOT
		
		
	

你可能感兴趣的:(Maven的依赖)