什么是Maven
Maven是Apache下的项目管理工具,它由纯Java语言开发,可以帮助我们更方便的管理和构建Java项目。
为什么要用Maven
- jar包管理:
a)从Maven中央仓库获取标准的规范的jar包以及相关依赖的jar包,避免自己下载到错误的jar包;
b)本地仓库统一管理jar包,使jar包与项目分离,减轻项目体积。
Maven项目通过坐标的方式从本地仓库获取jar包;
- 坐标:由公司/组织名(groupId) + 项目名/子项目名(artifactId) + 版本号(version)组成;
- 本地仓库:存放很多jar包,供Maven项目使用;
- Maven通过建立本地仓库索引,可以快速的找到符合要求的jar包,从而解决效率问题;
- maven是跨平台的可以在window、linux上使用。
- 清晰的项目结构;
- 多工程开发,将模块拆分成若干工程,利于团队协作开发。
项目分为Web、Service、Dao层,可以依照员工自身的业务能力分配工作。
maven仓库
Maven分为三种仓库,具体功能如下。
maven项目实战
前几天我使用maven实现了一个hadoop中mapReduce的小功能,我在使用的过程中首先要创建mapReduce所需要的相关依赖jar包。
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-app</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-server-resourcemanager</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version>
</dependency>
</dependencies>
这就是依赖部分的所有代码了,<dependencies>
是存放依赖的地方,这个标签内部可以放多个标签,然而<dependency>
是当个依赖的标签,内部需要<groupId><artifactId><version>
标签。
这里我们引入了hadoop-client、hadoop-mapreduce-client-app、hadoop-yarn-server-resourcemanager、junit以及管理日志的jar包slf4j-log4j12。
那么程序中所用到的jar包都存放在哪里呢?本地仓库的位置在哪里?如何配置本地仓库位置?
我们打开maven文件包,里面有一个conf文件夹,打开setting.xml里面存放着相关配置,这里我们可以看到,我把repository的位置改成了D:\maven\mavenLocal
,
jar包下载太慢怎么办?如何配置阿里云镜像仓库?
同样还是刚才的conf文件夹中的setting.xml,通过修改mirrors
标签,就可以达到改目的。