什么是Maven?

当我们完成一个项目时需要很多第三方类库,我们在这个项目中使用的第三方类库需要我们不断的去引用更新jar包来进行操作。Maven翻译为"内行","专家"的意思,时Apache公司下的一个Java开源项目。基于POM(Project Object Model)概念,利用一个中央信息片段来管理一个项目的构建,报告和文档。它可以对Java项目进行构建,依赖的管理。Maven极大地提高了程序员的开发效率。

什么是Maven POM

POM时Maven工程的基本工作单位,是一个XML文件,其中包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。当执行任务和目标时,Maven就会查找其所对应的POM文件。它读取POM,获取所需要的配置信息,然后执行目标。所有 POM 文件都需要 project 元素和三个必需字段:groupId(工程组表示),artifactId(工程标识),version(工程版本号)。这是三个必须的字段,也有它们三个组成POM的GAV坐标(必不可少,在工程安装中对应3个文件夹)。

关于POM文件的相关描述
基本信息
modelVersion Maven模型的版本,对于Maven2和3来说,它只能是4.0.0
groupId 组织id

组成GAV.这三个为基本元素,该三元素组成pom的坐标,可以在众多maven项目中唯一定位到某一个项目。坐标也决定将来项目的路径及名称

artifactId 项目名称,也时模块名称,对应groupId中项目的子项目
version 项目版本号
packaging

项目打包的类型,可以为jar,war,rar,ear等,默认为jar

依赖
dependencies和dependency Maven的一个重要作用就是管理jar包,为了一个项目可以构建的运行,项目中不可避免会依赖很多jar包,在Maven中这些jar包被称为依赖,使用dependency来配置,具体的以来配置可以通过官网进行搜索。这些依赖配置是通过坐标来定位的,由此我们不难看出,maven把所有的jar包都是为存在了,这也是maven的方便之处
配置属性
properties 用来定义一些配置属性,也可以定义全局变量,符合xml规则,其标签元素名为变量名,标签中的文本内容为变量值,其他地方通过$(标签名)引用该值
构建
build 表示与构建相关的配置,里面可以部署插件等信息
Maven工程约定目录结构

  Hello

   |---src 源代码

   |---|---main 主程序

   |---|---|---java 主程序中的java

   |---|---|---resources 主程序的配置文件

   |---|---test 测试程序

   |---|---|---java 测试程序中的java

   |---|---|---resources 测试程序的配置文件

   |---pom.xml 核心配置文件

Maven仓库

仓库说明:

  1.本地仓库:本机当前电脑上的资源存储位置,为本机上所有的Maven工程提供服务(从远程仓库下载的jar包也会添加到本地仓库)

  注意:本地仓库的位置可以修改

  设置本机存放资源的目录位置(设置本机仓库):
       1. 修改maven的配置文件, maven安装目录/conf/settings.xml 先备份 settings.xml
       2. 修改 <localRepository>  指定你的目录(不要使用中文目录)

  2.远程仓库:不在本机上,需要网络才能使用,多电脑共享使用

    ①中央仓库:通过网络访问,为全世界所有的Maven提供服务

    ②中央仓库的镜像:为中央仓库分担访问和下载压力的。

    ③私服:在局域网环境中部署的服务器,当前局域网范围内的所有的Maven工程服务。

Maven对仓库的使用

  在 Maven 构建项目的过程中如果需要某些插件,首先会到 Maven 的本地仓库中查找,如果找到则可以直接使用;如果找不到,它会自动连接外网,到远程中央仓库中查找;如果远程仓库中能找到,则先把所需要的插件下载到本地仓库,然后再使用,并且下次再用到相同的插件也可以直接使用本地仓库的;如果没有外网或者远程仓库中也找不到,则构建失败。