Maven

Posted 奔跑的路奇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven相关的知识,希望对你有一定的参考价值。

1 Maven概述

1.1 Maven简介

	Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
	就是可以通过pom.xml文件的配置获取jar包,而不用手动去添加jar包。

1.2 Maven的两大功能

1:项目构建
项目构建是一个项目从:源代码、编译、测试、打包、部署、运行的过程。
Maven项目构建过程
Maven将项目构建的过程进行标准化,每个阶段使用一个命令完成,下图展示了构建过程的一些阶段:
在这里插入图片描述
2:依赖管理
什么是依赖?一个java项目可能要使用一些第三方的jar包才可以运行,那么我们说这个java项目依赖了这些第三方的jar包。
例如大家前面学过的javaWeb中需要的连接数据库的jar包、数据源的jar包等等。
Maven项目的依赖管理
Maven项目管理所依赖的jar包不需要手动向工程添加jar包,只需要在pom.xml(Maven工程的配置文件)添加jar包的坐标,自动从Maven仓库中下载jar包运行。

使用Maven依赖管理添加jar的好处:
	1、通过pom.xml文件对jar包的版本进行统一管理,可避免版本冲突。
	2、Maven团队维护了一个非常全的Maven仓库,里边包括了当前使用的jar包,Maven工程可以自动从Maven仓库下载jar包,非常方便。     
	  

2 Maven的安装与配置

2.1 Maven的下载

自己可以自行从 网站 下载。

2.2 Maven的安装

将下载好的Maven安装包解压到一个不含有中文和空格的目录中。
在这里插入图片描述
在这里插入图片描述
maven目录说明

bin目录: 该目录包含了 mvn 运行的脚本 
boot目录: Maven运行需要类加载器
conf目录: 该目录包含了一个非常重要的文件 settings.xml。直接修改该文件,就能在机器上全局 地定制 Maven 的行为         
lib目录: Maven运行依赖jar包

2.3 配置Maven环境变量

前提必须有java的环境变量
java的环境变量
配置Maven环境变量
配置Maven环境变量
通过 mvn -v命令检查 Maven是否安装成功
检查 Maven是否安装成功

3 Maven的核心概念

3.1 Maven的目录结构

Maven默认约定了一套目录结构,在通过Maven创建了项目以后,项目的目录结构就是以这套目录结构作为模板创建的。
Maven约定的目录结构:
目录结构

3.2 Maven的仓库

在 Maven中可以将仓库理解位一个位置,一个专门存放项目中依赖的第三方库的位置。
maven的仓库可以分为本地仓库、第三方仓库(私服)、中央仓库
1:本地仓库
默认情况下,每个用户在自己的用户目录下都有一个路径名为 .m2/respository/ 的仓库目录。

工程第一次需要某种jar包时,会从远程仓库(互联网)下载并保存到本地仓库中(在程序员的电脑上),
当第二次使用时,不需要去远程仓库下载,会先去本地仓库中找,如果找不到才会去远程仓库上下载。

2:中央仓库
工程依赖的jar包如果本地仓库没有,默认从中央仓库下载

中央仓库中的jar包由专业团队(Maven团队)维护,中央仓库中存放了全世界大多数流行的开源软件的jar包,是Maven默认的远程仓库。
保证项目开发时,项目所需用的jar都从该仓库中拿,每个人的版本就都一样。

3:第三方仓库

第三方仓库,又称为内部中心仓库,也称为私服。
私服:一般是由公司自己设立的,只为本公司内部共享使用。
私服可以使用的是局域网,中央仓库必须使用外网。
注意:连接私服,需要单独配置。如果没有配置私服,默认不使用

编写依赖后的流程图:
在这里插入图片描述

3.3 Maven的坐标

在Maven中坐标就是为了定位一个唯一确定的jar包。

Maven坐标主要组成

groupId:定义当前Maven项目组织名称
artifactId:定义实际项目名称
version:定义当前项目的当前版本或者是所依赖的jar包的版本

<groupId>com.zijie</groupId>
<artifactId>Maven</artifactId>
<version>1.0-SNAPSHOT</version>

3.4 Maven的生命周期

3.4.1 什么是生命周期

Maven生命周期就是为了对所有的构建过程进行抽象和统一。包括项目清理、初始化、编译、打包、测试、部署等几乎所有构建步骤。生命周期可以理解为构建工程的步骤。

3.4.2 Maven三大生命周期

Maven拥有三套相互独立的生命周期,分别是clean、default和site.
clean Lifecycle: 在进行真正的构建之前进行一些清理工作。 mvn clean
default Lifecycle: 构建的核心部分,编译,测试,打包,部署等等。
site Lifecycle: 生成项目报告,站点,发布站点。

4 Maven常用指令

mvn compile
执行 mvn compile命令,完成编译操作。
执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。
mvn clean
会将target目录删除。
mvn test
执行 mvn test命令,完成单元测试操作。执行完毕后,会在target目录中生成三个文件夹:surefire、surefire-reports(测试报告)、test-classes(测试的字节码文件)
Maven package
执行 mvn package命令,完成打包操作。
执行完毕后,会在target目录中生成一个文件,该文件可能是jar、war
mvn install
执行 mvn install命令,完成将打好的jar包安装到本地仓库的操作
执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用

5 Maven插件

5.1 Maven编译插件

<build> 
	<plugins>
		<plugin> 
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId> 			
			<version>3.8.0</version>
			<configuration> 
			 	<source>1.8</source> 
			 	<target>1.8</target> 
			</configuration>
		</plugin> 
	</plugins> 
</build>

5.2 Tomcat插件

我们之前创建的web项目都需要额外配置tomcat以后才能运行项目,现在Maven提供了tomcat插件,这样我们就无需再添加额外的tomcat了。

<build> 
	<plugins>
		<plugin> 
			<groupId>org.apache.tomcat.maven</groupId>
			<artifactId>tomcat7-maven-plugin</artifactId>	
			<version>2.2</version>
			<configuration> 
			 	<port>8080</port><!-- tomcat的端口 -->
			 	<path>/</path><!-- 项目的访问路径-->
			</configuration>
		</plugin> 
	</plugins> 
</build>

点击“add configuration”,按照图片中的步骤添加tomcat命令,运行tomcat插件
在这里插入图片描述
也可以直接点击运行:
在这里插入图片描述
最后,如果有问题,希望指正,一起进步。

以上是关于Maven的主要内容,如果未能解决你的问题,请参考以下文章

Spring+SpringMVC+MyBatis+Maven框架整合

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

如何在 Apache Felix maven-bundle-plugin 中设置 Provide-Capability 标头?

Maven FTP部署:无法创建目录

如何从詹金斯访问maven属性?

向小军 “小黑” 正式加入 Maven Skateboards