1.什么是maven
在开发中经常需要依赖第三方的包,包与包之间存在依赖关系,版本间还有兼容性问题,有时还里要将旧的包升级或降级,当项目复杂到一定程度时包管理变得非常重要。
Maven是当前最受欢迎的Java项目管理构建自动化综合工具,类似以前Java中的Ant、node.js中的npm、dotNet中的nuget、PHP中的Composer。
Maven这个单词来自于意第绪语(犹太语),意为知识的积累。
Maven提供了开发人员构建一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认构建生命周期。Maven让开发人员的工作更轻松,同时创建报表,检查,构建和测试自动化设置。Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。
每个Java项目的目录结构都没有一个统一的标准,配置文件到处都是,单元测试代码到底应该放在那里也没有一个权威的规范。
因此,我们就要用到Maven(使用Ant也可以,不过编写Ant的xml脚本比较麻烦)----一个项目管理工具。
Maven主要做了两件事:
统一开发规范与工具
统一管理jar包
如果没有Maven,你可能不得不经历下面的过程:
复制代码
1 如果使用了spring,去spring的官网下载jar包;如果使用hibernate,去hibernate的官网下载Jar包;如果使用Log4j,去log4j的官网下载jar包…
2 当某些jar包有依赖的时候,还要去下载对应的依赖jar包
3 当jar包依赖有冲突时,不得不一个一个的排查
4 执行构建时,需要使用ant写出很多重复的任务代码
5 当新人加入开发时,需要拷贝大量的jar包,然后重复进行构建
6 当进行测试时,需要一个一个的运行…检查
复制代码
有了Maven,它提供了三种功能:
1 依赖的管理:仅仅通过jar包的几个属性,就能确定唯一的jar包,在指定的文件pom.xml中,只要写入这些依赖属性,就会自动下载并管理jar包。
2 项目的构建:内置很多的插件与生命周期,支持多种任务,比如校验、编译、测试、打包、部署、发布…
3 项目的知识管理:管理项目相关的其他内容,比如开发者信息,版本等等
2.使用maven
2.1 获取maven
1.idea自带的maven
2.自己下载安装maven
2.2当我们有了maven之后,它会为我们自动构建下载jar包等等,但是它默认的本地仓库位置在c盘,怎么更改呢?
第一种:idea 的setting ->maven中可以更改maven home(maven安装目录,默认为Bundled (Maven 3)在idea安装目录下,可以更改为我们自己maven的安装目录),user setting file(配置文件的路径,配置文件里面包含本地仓库的配置和远程仓库的配置),local repository(本地仓库地址)三个路径,都可以更改
第二种:如果我们更改之后再新建项目maven home,和user setting file依然无法改变,那么解决办法就是,使用idea下载的maven,然后将我们的setting.xml文件复制到c盘的…/.m路径下,然后setting.xml文件配置好本地仓库的地址