一、Maven的来源
Maven是一个包管理工具,在没有它之前,我们做一个Java项目,需要第三方jar包时,我们需有手动去网上下载下来,人后手动加到项目里;操作麻烦,如果人家版本更新了,或者我们的项目需要更新某个模块,导致之前加入的依赖包,又需要重新下载最新版本,重新加入到项目里。操作麻烦;因此当年的程序员大佬们开发了一款项目自动管理工具——Maven。
二、Maven的核心内容简述
Maven是一款服务于Java平台的自动化构建工具。Maven 作为 Java 项目管理工具,它不仅可以用作jar包管理,还有许多的插件,可以支持整个项目的开发、打包、测试及部署等一系列行为。
- Maven本质上是一个项目管理工具,他的理念是:将项目开发和管理的过程抽象成一个模型——项目对象模型(POM)
上图是Maven的工作流程图;图中的一些名词概念如下:
1.配置文件pom.xml:
- pom.xml 是Maven工程中的核心配置文件,其地位相当于web项目中的web.xml配置文件,与项目构建过程相关的一切设置都在这个文件中进行配置。
- Maven在工作时,就是通过pom.xml配置文件中所记录的项目的各种信息,并结合自身的各种插件,来达到对项目进行管理和更新。
2.仓库(用来存储资源、包含各种jar包):
- 本地仓库:自己电脑上存储资源的仓库,同时连接远程仓库,可以从远程仓库上获取资源。
远程仓库:又分为私服和中央仓库
- 私服:一般是公司或部门架设在当前局域网下的仓库,介于本地与中央之间,为当前局域网范围内的所有Maven工程服务(为本地仓库提供jar包)。
-
中央仓库:Maven公司团队所管理的服务器,架设在Internet上,为全世界的所有Maven工程服务,基本上存储着99%的jar包。
-
中央仓库的镜像:架设在各个大洲,为中央仓库分担流量。减轻中央仓库的压力,更快响应用户请求。
3、坐标(Maven中坐标用于描述仓库中资源的位置)
(1)数学中的坐标(x,y,z)可以确定一个点的位置
(2)Maven的坐标:使用下面三个量在仓库中可以唯一定位一个jar包
① groupid:当前Maven项目隶属的组织名称的反写,例如:
<groupid>com.yzx.maven_project</groupid>
[2] artifactid:Maven项目的名称
<artifactid>Hello</artifactid>
[3] version:当前项目版本号
<version>1.0.0</version>
Maven的作用:
- 项目构建:Maven为我们提供标准的、跨平台的自动化项目构建方式;
(之前我们创建项目,需要确定项目的目录结构,比如src 存放Java源码, resources存放配置文件,webContent放前端页面,还要配置环境比如JDK的版本等等,如果有多个项目 那么就需要每次自己搞一套配置,十分麻烦。Maven为我们提供了一个标准化的Java项目结构,我们可以通过Maven快速创建一个标准的Java项目.)
- 依赖管理:通过Maven,可以方便快捷的项目依赖的资源(jar包),避免资源的版本冲突问题。
- 统一开发结构:提供了一套标准的、统一的项目结构(自从用了Maven写Java项目,大家都按照它建议的项目结构来写)
三、下载Maven
(还没有整理完🐶)
四、Maven的常用命令
- mvn clean:清理(会删除原来编译和测试的目录,即 target目录,但是已经 install到仓库里的包不会删除)
- mvn compile:编译主程序 (会在当前目录下生成一个 target里边存放编译主程序之后生成的字节码文件)
- mvn test-compile:编译测试程序(会在当前目录下生成一个 target,里边存放编译测试程序之后生成的字节码文件)
- mvn test:执行测试(会生成一个目录 surefire- reports,保存测试结果)
- mvn package:打包主程序(会编译、编译测试、测试、并且按照pom.xml配置把主程序打包生成jar包或者war包
- mvn install:安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)
- mvn deploy:部署主程序(会把本工程打包,按照本工程的坐标保存到本地库中,并且还会保存到私服仓库中。还会自动把项目部署到web容器中)
五、Maven常用远程仓库推荐
1.几个常用国外的中央仓库地址
1. http://www.sonatype.org/nexus/(一款强大的Maven仓库管理网站)
2. http://mvnrepository.com/ (一款常用的Maven仓库网站)
3. http://repo1.maven.org/maven2 (Maven官方中央仓库)
2. Maven 镜像仓库地址
①阿里中央仓库(首选推荐)
<repository>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
② camunda.com 中央仓库
<repository>
<id>activiti-repos2</id>
<name>Activiti Repository 2</name>
<url>https://app.camunda.com/nexus/content/groups/public</url>
</repository>
③spring.io 中央仓库
<repository>
<id>springsource-repos</id>
<name>SpringSource Repository</name>
<url>http://repo.spring.io/release/</url>
</repository>
④maven.apache.org 中央仓库
<repository>
<id>central-repos</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
</repository>
#参考文章: