maven

Maven是Apache下的一个开源项目,它是一个创新的项目管理工具,它用于对Java项目进行项目构建、依赖管理及项目信息管理。(开源、免费、Java语言实现)
总结:Maven就是一个软件工具,它的主要作用就是对项目进行管理

Maven安装

⭐️ 1. 下载解压

Maven 3.6.3下载链接
将下载的文件用解压工具解压到本地目录中,解压后的结构如下:
maven_第1张图片
要在cmd中全局使用Maven命令,需要配置环境变量。

⭐️ 2. Maven环境变量配置

右键”此电脑“,点击”属性“,并打开”高级系统设置“中的”环境变量“,添加Maven环境变量:
先定义Maven根路径变量 M2_HOME :
maven_第2张图片
再在 Path 环境变量中,添加Maven工具bin目录为全局命令路径:

%M2_HOME%\bin

maven_第3张图片

⭐️ 3. 检测安装配置是否成功

在cmd中运行Maven命令

mvn -version

image.png

Maven项目中可以引入依赖包,引入后,加载依赖包的方式为在Maven仓库中搜索。

仓库

Maven中的仓库,是用来存放项目所依赖的jar的,仓库主要分为三种:

⭐️ 本地仓库

项目中所依赖的第三方jar,最终都会下载存放到自己电脑中的本地仓库中,本地仓库的位置可以自己指定,也可以使用默认路径:

${user.home}/.m2/repository 

⭐️ 中央仓库

这是Maven官方提供的远程仓库,仓库中存放了,日常项目中所会使用到的几乎所有jar包,当我们自己电脑中的本地仓库中,没有要依赖的jar的时候,Maven默认会从中央仓库中查找并下载需要的jar包
注意,maven始终会先去本地仓库中查看需要的jar包,如果没有再到中央仓库中查找
注意,从中央仓库中下载的jar包,会自动存放到本地仓库中

⭐️ 私有仓库

私有仓库,也称为私服,一般是由公司自己设立的,只为本公司内部共享使用。
项目中依赖的jar,maven首先还是会先到本地仓库中进行查找,如果没有会去私服中查找,如果私服中没有,那么私服会自动去远程仓库中去下载。
maven_第4张图片

创建Maven项目

我们把符合Maven约定规范的项目称为Maven项目。
(1)在IDEA中新建 maven 类型的项目,选择quickstart模型
![@CMYH0Q9)EUYG@NW(SZP]7H.png](https://img-blog.csdnimg.cn/img_convert/c8d08de0a1129530dfbcd2c6f79d02f6.png#averageHue=#3d4144&clientId=u059b7c73-f3c3-4&from=paste&height=665&id=u8fdd4b39&originHeight=831&originWidth=1000&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=76794&status=done&style=none&taskId=u38e97da8-80fc-4890-832a-8d411d27f98&title=&width=800)

可以输入以下信息:

  • GroupId:组织id、组织名,一般使用公司的域名,如com.alibaba。同时按规范,自己写的 java 都在这样的包下。个人使用随便取自己英文名或拼音都行。
  • ArtifactId:产品id、产品名,项目即产品,所以一般使用本项目名,多个英文之间 - 间隔。
  • Version:产品的版本号,本项目可能有多个版本提供给别人使用。

以上三个字段代表了唯一的一个产品,我们创建 Maven 项目,引入其他产品(依赖包)都需要使用这些字段标识唯一的一个产品或项目
(2)看到build success,表示maven项目创建成功
![RF]9]O3Z%LYEM7L_8Q1~1Y.png

maven项目结构

maven_第5张图片
了解:IDEA创建时,会省略一个 src/test/resources 的目录,代表测试资源目录,用于存放单元测试用的配置文件,可以自行创建。
观察编译后的运行时结构:
在 src/main/resources 目录下,创建一个配置文件(任意文件都行,以下为创建的 test.xml 文件)
在 src/main/java 目录下,随便创建一个类,编写 main 方法运行后,会生成编译结构:
maven_第6张图片

Maven项目配置

Maven配置文件:
以上创建的Maven项目中,项目根路径下,会生成一个 pom.xml 的配置文件,即为Maven项目的配置文件,Maven项目构建工具就是基于该配置文件来对Maven项目进行管理
该XML文件的格式采取一种叫”项目对象模型“的概念(Project Object Model,简称POM),因此Maven给这个文件取名为 pom.xml
xml中可以使用 这样的方式注释,IDEA中和 java注释快捷键一样,Ctrl+/

引入依赖包:当前项目需要引入第三方库依赖包时使用。在 标签中配置 标签,每个 标签为一个引入的依赖包,使用组织id,产品id,版本号标识要引入的依赖包。以下引入 mysql 依赖包:

<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.49</version>
</dependency>

以下为全部 pom.xml 内容:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>maven-demo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>maven-demo</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.49</version>
  </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

**注意 **
在IDEA中修改了 pom.xml 后,记得在Maven面板中刷新才能生效:
maven_第7张图片
**Maven的生命周期命令 **
Maven构建工具主要目的就是对Maven项目进行管理,这些都是通过Maven的生命周期命令来管理的。在IDEA创建的Maven项目中,打开Maven面板,展开项目的Lifecycle即为生命周期命令:
maven_第8张图片

  1. 清理clean:将之前编译得到的旧文件class字节码文件删除
  2. 编译compile:将java源程序编译成class字节码文件
  3. 测试test:自动测试,自动调用junit程序
  4. 报告report:测试程序执行的结果
  5. 打包package:动态Web工程打War包,java工程打jar包
  6. 安装install:将项目转换成为maven依赖存放在本地maven仓库中
  7. 部署deploy:将工程生成的结果放到服务器中或者容器中,使其可以运行

maven作用

Maven在项目中的作用很多,这些作用主要集中在以下俩个方面:

⭐️ 1. 项目构建

项目构建,是指一个项目清理、编译、测试、报告、打包、安装、部署等过程,Maven中把这些过程进行了标准化管理,可以通过一个命令,自动按照顺序,依次执行这里面的每一个步骤。

⭐️ 2.依赖管理

是指Maven将项目中所依赖的外部jar包,进行统一的管理。之前自己手动管理这些jar时,所遇到的
问题:

  • 需要到不同的官网下载不同的jar
  • 需要自己测试多个jar之间是否版本兼容
  • 需要自己分析依赖关系,例如a.jar依赖b.jar,那么我们使用a.jar的时候也要把b.jar下载下来
  • 需要自己管理jar和其对应的源码和javadoc

使用Maven后,这些问题都统统帮我们解决了,它会对项目中依赖的jar进行自动管理。

你可能感兴趣的:(JavaEE,maven,java,intellij-idea)