javaweb之Maven项目管理工具学习

其实在真实的项目中我就已经在用maven了,今天决心整体系统的学习一遍maven。

maven是什么:maven翻译过来是内行、专家的意思。maven是跨平台开发的项目管理工具。主要服务于局域java平台的项目构建,依赖管理和项目信息管理。

为什么学习maven:maven相对于以前的ant,Eclipse ide,拥有统一的约定,有明确的目录结构,统一管理代码,拥有生命周期,构建过程自动化:如编译,测试,打包部署均可以自动化。

maven安装配置:略。

maven核心概念:项目对象模型pom:maven统一管理的配置文件pom.xml;

坐标:›groupId:定义当前Maven项目隶属项目,

    ›artifactId:定义实际项目中的一个模块,
            ›version:定义当前项目的当前版本,
›     packaging:定义该项目的打包方式;
依赖管理:依赖声明主要包含如下元素:
							
		                                             
			                                     	junit
			                                    	 junit
			                                    	 4.10
			                                    	 test
		                                            	
	                                               

  其中依赖范围scope 用来控制依赖和编译,测试,运行的classpath的关系. 主要的 是三种依赖关系如下:
1.compile: 默认编译依赖范围。对于编译,测试,运行三种classpath都有效,
2.test:测试依赖范围。只对于测试classpath有效,
3.provided:已提供依赖范围。对于编译,测试的classpath都有效,但对于运行无 效。因为由容器已经提供,例如servlet-api,
4.runtime:运行时提供。例如:jdbc驱动;
依赖的最后要注意的一点:传递性依赖原则: 一、路径最近者优先  二、路径相 同,第一声明者优先(注意1.dependencyManagement中定义的依赖子module不 会共享2.dependencies中定义的依赖子module可以共享)  三、可选依赖不被传递   四、依赖优化:mvn dependency:list。
maven仓库:本地仓库和远程仓库;
maven生命周期:对项目的所有的构建过程进行抽象和统一;maven的三大生命周期:clean, default,site;
    maven聚合与继承:当一次性构建多个项目模块的时候,就需要对这些模块进行聚合, .....;而继承是为了消除重复,把很多相同的配置提 取出来。
maven私服:略。

你可能感兴趣的:(javaEE,web开发)