什么是Maven

Maven是Apache下的项目管理工具,它由纯Java语言开发,可以帮助我们更方便的管理和构建Java项目。

为什么要用Maven

  • jar包管理:
    a)从Maven中央仓库获取标准的规范的jar包以及相关依赖的jar包,避免自己下载到错误的jar包;
    b)本地仓库统一管理jar包,使jar包与项目分离,减轻项目体积。

    Maven项目通过坐标的方式从本地仓库获取jar包;
  1. 坐标:由公司/组织名(groupId) + 项目名/子项目名(artifactId) + 版本号(version)组成;
  2. 本地仓库:存放很多jar包,供Maven项目使用;
  3. Maven通过建立本地仓库索引,可以快速的找到符合要求的jar包,从而解决效率问题;
  • maven是跨平台的可以在window、linux上使用。
  • 清晰的项目结构;
  • 多工程开发,将模块拆分成若干工程,利于团队协作开发。
    项目分为Web、Service、Dao层,可以依照员工自身的业务能力分配工作。

maven仓库

Maven分为三种仓库,具体功能如下。

MAVEN仓库包回退_hadoop

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

MAVEN仓库包回退_java_02

jar包下载太慢怎么办?如何配置阿里云镜像仓库?

同样还是刚才的conf文件夹中的setting.xml,通过修改mirrors标签,就可以达到改目的。

MAVEN仓库包回退_MAVEN仓库包回退_03