Maven核心概念

一、坐标

组成:

groupId:定义maven当前组织名称

artifactId:定义实际项目名称

version:定义当前项目的当前版本

例如:

 
	mysql
	mysql-connector-java
	5.1.15

二、依赖:

1.依赖范围:

a.通过scope标签表示

b.常用值:

                                                     对主代码有效                对测试代码有效           被打包,运行时有效               例如

compile(默认值)                           Y                                       Y                                          Y                                log4j

test                                                                                                Y                                                                              junit

provided                                              Y                                      Y  servlet-api

runtime                                                                                                                                      Y                             JDBC Driver

例如:

     
     junit  
     junit  
     4.0  
     test  
    

2.依赖范围传递:

Maven核心概念_第1张图片


左边第一列表示第一直接依赖范围
上面第一行表示第二直接依赖范围
中间的交叉单元格表示传递性依赖范围。

归纳:
当第二依赖的范围是compile的时候,传递性依赖的范围与第一直接依赖的范围一致。
当第二直接依赖的范围是test的时候,依赖不会得以传递。
当第二依赖的范围是provided的时候,只传递第一直接依赖范围也为provided的依赖,且传递性依赖的范围同样为 provided;
当第二直接依赖的范围是runtime的时候,传递性依赖的范围与第一直接依赖的范围一致,但compile例外,此时传递的依赖范围为runtime;


3.依赖冲突:

a.跨pom文件的冲突,使用就近原则

b.同一个pom文件的冲突,遵循最下面的


4.依赖冲突解决方案:

a.

true标签:表示该依赖是否可选,默认是false,表示会传递下去。

b.exclusion标签排除依赖


	
		
		
	

三、生命周期

【注意】 在maven中,只要在同一个生命周期,你执行后面的阶段,那么前面的阶段也会被执行,而且不需要额外去输入前面的阶段


1.clean生命周期:

pre-clean 执行一些需要在clean之前完成的工作 
clean 移除所有上一次构建生成的文件 
post-clean 执行一些需要在clean之后立刻完成的工作 


2.default生命周期:

validate 
generate-sources 
process-sources 
generate-resources 
process-resources 复制并处理资源文件,至目标目录,准备打包。 
compile 编译项目的源代码。 
process-classes 
generate-test-sources 
process-test-sources 
generate-test-resources 
process-test-resources 复制并处理资源文件,至目标测试目录。 
test-compile 编译测试源代码。 
process-test-classes 
test 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。 
prepare-package 
package 接受编译好的代码,打包成可发布的格式,如 JAR 。 
pre-integration-test 
integration-test 
post-integration-test 
verify 
install 将包安装至本地仓库,以让其它项目依赖。 
deploy 将最终的包复制到远程的仓库,以让其它开发人员与项目共享。 输入前面的阶段


3.site生命周期:

pre-site 执行一些需要在生成站点文档之前完成的工作 
site 生成项目的站点文档 
post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备 
site-deploy 将生成的站点文档部署到特定的服务器上 


四、插件plugin

1.编译插件:jdk版本

	
		
			
				org.apache.maven.plugins
				maven-compiler-plugin
				
					1.7
					1.7
					UTF-8
				
			
		
	


2.tomcat插件:


	org.apache.tomcat.maven
	tomcat7-maven-plugin
	
		80
		/
	
使用  tomcat7:run 运行项目


五、继承

继承:表示的是pom文件的继承

1.子pom文件需要声明parent标签指明继承的父工程的GAV

	
		MavenDemo
		com.milan.maven
		0.0.1-SNAPSHOT
	

2.父工程统一管理jar,故此子工程的依赖jar不需要verson标签












你可能感兴趣的:(Maven)