maven 详细教程

复习以前学过的知识点哈

Maven概述

1.1 Maven的概念

Maven是项目进行模型抽象,充分运用的面向对象的思想,Maven可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。

1.2 Maven的作用

  • maven对项目的第三方构件(jar包)进行统一管理。向工程中加入jar包不要手工从其它地方拷贝,通过maven定义jar包的坐标,自动从maven仓库中去下载到工程中。

  • maven提供一套对项目生命周期管理的标准,开发人员、和测试人员统一使用maven进行项目构建。项目生命周期管理:编译、测试、打包、部署、运行。

  • maven对工程分模块构建,提高开发效率。

1.3 Maven的概念模型

  • 项目对象模型 (Project Object Model)。POM对象模型,每个maven工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式。

  • 依赖管理系统(基础核心 )。maven通过坐标对项目工程所依赖的jar包统一规范管理。

  • maven定义一套项目生命周期。清理、初始化、编译、测试、报告 、打包、部署、站点生成。

  • 一组标准集合。maven工程有自己标准的工程目录结构、定义坐标有标准。

  • maven 管理项目生命周期过程都是基于插件完成的,例如:开发中使用的tomcat插件。

1.4 Maven的仓库

仓库名称 作用
本地仓库 相当于缓存,工程第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会去远程仓库找。
中央仓库 就是远程仓库,仓库中jar由专业团队(maven团队)统一维护。中央仓库的地址:http://repo1.maven.org/maven2/
远程仓库 在公司内部架设一台私服,其它公司架设一台仓库,对外公开。

   

扫描二维码关注公众号,回复: 8589953 查看本文章

1.5 Maven的坐标

Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。为了能自动化的解析任何一个Java构件,Maven必须将这些Jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标。包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。坐标的定义元素如下:

  • groupId:定义当前Maven项目名称

  • artifactId:定义项目模块

  • version:定义当前项目的当前版本

例如:要引入junit的测试jar,只需要在pom.xml配置文件中配置引入junit的坐标即可:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

Maven的安装

2.1 下载Maven

2.2 安装Maven

将Maven压缩包解压,即安装完毕

2.3 Maven目录介绍

2.4 配置环境变量

2.5.1 配置本地仓库

2.5.2 配置本地仓库

在maven的安装目录中conf/ settings.xml文件,在这里配置本地仓库

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
  <localRepository>D:/java/LocalRepository/repository</localRepository>

2.6 测试Maven安装成功

2.7 出现以上信息则Maven安装成功

 

Maven的常用命令

3.1.1 compile
compile 是 maven 工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target目录下。
cmd 进入命令状态,执行 mvn compile,如下图提示成功:

 查看 target 目录, class 文件已生成,编译完成

3.1.2 test

test 是 maven 工程的测试命令 mvn test,会执行 src/test/java 下的单元测试类。
cmd 执行 mvn test 执行 src/test/java 下单元测试类,下图为测试结果,运行 1 个测试用例,全部成功

 

3.1.3 clean

clean 是 maven 工程的清理命令,执行 clean 会删除 target 目录及内容。


3.1.4 package

package 是 maven 工程的打包命令,对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war
包。


3.1.5 install

install 是 maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。
从运行结果中,可以看出:
当后面的命令执行时,前面的操作过程也都会自动执行,


3.1.6 Maven 指令的生命周期

maven 对项目构建过程分为三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,
这三套生命周期分别是:

  • Clean Lifecycle 在进行真正的构建之前进行一些清理工作。
  • Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等。
  • Site Lifecycle 生成项目报告,站点,发布站点。


3.1.7 maven 的概念模型

 

Maven 包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project
Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段
(phase)中插件(plugin)目标(goal)的逻辑
 

  • 项目对象模型 (Project Object Model)                                                                                                                                        一个 maven 工程都有一个 pom.xml 文件,通过 pom.xml 文件定义项目的坐标、项目依赖、项目信息、插件目标等。
  •  依赖管理系统(Dependency Management System)                                                                                                                  通过 maven 的依赖管理对项目所依赖的 jar 包进行统一管理。
  •  一个项目生命周期(Project Lifecycle)                                                                                                                                          使用 maven 完成项目的构建,项目构建包括:清理、编译、测试、部署等过程, maven 将这些
  • 过程规范为一个生命周期,如下所示是生命周期的各各阶段:
     

maven 通过执行一些简单命令即可实现上边生命周期的各各过程,比如执行 mvn compile 执行编译、
执行 mvn clean 执行清理。
    一组标准集合
maven 将整个项目管理过程定义一组标准,比如:通过 maven 构建工程有标准的目录结构,有
标准的生命周期阶段、依赖管理有标准的坐标定义等。
  插件(plugin)目标(goal)
maven 管理项目生命周期过程都是基于插件完成的。
 

发布了51 篇原创文章 · 获赞 121 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/huzecom/article/details/101145612