零基础学习【Maven】这一篇就够了

maven学习目录

  • 1. maven
    • 1-1. maven介绍
      • 依赖管理
      • 一键构建
    • 1-2. maven安装
      • 下载maven
      • 安装maven
      • 目录结构介绍
      • 配置maven
      • 配置环境变量
      • 测试
    • 1-3. 标准结构
    • 1-4. 常见命令
      • clean
      • compile
      • test
      • package
      • install
      • deploy
      • 总结
  • 2. maven工程
    • 2-1. 配置环境
    • 2-2. 创建工程
    • 2-3. 依赖范围
    • 2.4 maven的主要标签含义
  • 3. 分模块开发
    • 3-1. 拆分与聚合的思想
    • 3-2. 父子工程搭建
    • 3-3. 两套关系梳理
    • 3-4. 依赖冲突
      • 第一声明优先原则
      • 路径近者优先原则
      • 依赖排除
      • 版本锁定

1. maven

1-1. maven介绍

Maven是一个项目管理工具,它的作用就是管理项目,主要体现在两个方面:依赖管理一键构建

  • 依赖管理:对 jar 包的管理方式,maven 会将所有需要的 jar 包放在本地仓库,每个项目通过配置文件引入自己所需要的
  • 一键构建:一个命令就可以完成一个项目构建过程

依赖管理

零基础学习【Maven】这一篇就够了_第1张图片

jar包在maven本地仓库中是按照什么结构存放的?

零基础学习【Maven】这一篇就够了_第2张图片

项目应该怎么获取对应的 jar 包 ?

零基础学习【Maven】这一篇就够了_第3张图片

本地仓库没有 jar 包从哪里下载 ?

零基础学习【Maven】这一篇就够了_第4张图片

一键构建

  • 项目构建:一个项目从源代码完成的那一刻起后面的流程(清理 编译 测试 打包 安装 部署)就称为项目的构建过程
  • 一键构建:上面的所有过程都对应着一个命令

1-2. maven安装

下载maven

maven下载地址

安装maven

将压缩包解压到一个没有中文,没有空格的目录

目录结构介绍

零基础学习【Maven】这一篇就够了_第5张图片

配置maven

① 配置本地仓库的目录位置

零基础学习【Maven】这一篇就够了_第6张图片

② 配置阿里云镜像

默认情况下,当本地没有需要的依赖的时候,maven会从apache的中央仓库下载,速度非常慢,在这里配置成阿里云的仓库地址

<mirrors>
  
  <mirror>
    <id>alimavenid>
    <name>aliyun mavenname>
    <url>http://maven.aliyun.com/nexus/content/groups/public/url>
    <mirrorOf>centralmirrorOf>       
  mirror>
mirrors>

零基础学习【Maven】这一篇就够了_第7张图片

配置环境变量

零基础学习【Maven】这一篇就够了_第8张图片

测试

启动cmd, 在电脑的任意位置使用mvn -version进行测试

零基础学习【Maven】这一篇就够了_第9张图片

1-3. 标准结构

pom.xml------------------------------------------------------------这是maven要使用的当前项目的配置文件
target ------------------------------------------------------------这是存储项目构建过程中产生的文件的(这个文件如果不存在会自动创建)
src    ------------------------------------------------------------这是项目的资源文件
   |--main -------------------------------------------------------- 这是当前项目的正式文件
   		|-- java-----------------------------------------------存放的是正式的java文件
   		|-- resources------------------------------------------存放的是正式的配置文件
   |--test -------------------------------------------------------- 这是当前项目的测试文件
		|-- java-----------------------------------------------存放的是测试的java文件       
		|-- resources------------------------------------------存放的是测试的配置文件(这个目录一般是没有的)

1-4. 常见命令

maven的项目构建过程是基于命令的,下面来看一些常见的命令

clean

清理命令,执行clean会删除target目录, 即清理掉上一次项目构建产生的文件

零基础学习【Maven】这一篇就够了_第10张图片

compile

编译命令,作用是将 src/main/java 下的文件 ( 正式的java文件 )编译为class文件输出到 target 目录下

零基础学习【Maven】这一篇就够了_第11张图片

test

测试命令,作用是执行 src/test/java 下的测试类,并编译为 class 文件输出到 target 目录下

零基础学习【Maven】这一篇就够了_第12张图片

package

打包命令,打的是所有的正式代码 (src/main) 对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war

零基础学习【Maven】这一篇就够了_第13张图片

install

安装命令,将打好 jar 包或者 war 包安装到本地maven仓库

零基础学习【Maven】这一篇就够了_第14张图片

deploy

部署命令,将打好的jar包或war包部署到私服中

总结

  • clean:删除target目录
  • compile:将正式的java代码进行编译(不包括test),生成class文件放到target目录中
  • test:将test代码进行编译(不包括java),生成class文件放到target目录中
  • package:将正式的java代码打包成jar包或war包
  • install:将打好jar包或者war包安装到本地maven仓库
  • deploy:将打好jar包或者war包安装到私服中

2. maven工程

本章节介绍如何在idea中配置使用maven软件

2-1. 配置环境

在主界面配置之后,其他项目再也不用配置了

零基础学习【Maven】这一篇就够了_第15张图片

2-2. 创建工程

零基础学习【Maven】这一篇就够了_第16张图片

编写项目标识

零基础学习【Maven】这一篇就够了_第17张图片

2-3. 依赖范围

很多情况下,我们需要精确控制一个依赖在哪个过程中生效,为了实现这个功能,Maven为每个依赖提供了作用范围,即:依赖范围。
maven支持的依赖范围主要有下面几种:
	compile: 默认依赖范围,作用域在编译、测试、运行时都有效。
	test:    作用域在测试时有效,编译和运行时不需要。
	provided:作用域在编译、测试时有,运行时不需要。 
	runtime: 作用域在测试、运行时有效,编译时不需要。

零基础学习【Maven】这一篇就够了_第18张图片

2.4 maven的主要标签含义

maven的主要标签
	groupId     公司(com.itheima)
	artifactId  项目
	version     版本号
		SNAPSHOT  快照   测试
		RELEASE   发行
	packaging
		jar  普通java工程
		war  web工程
		pom  父工程

3. 分模块开发

3-1. 拆分与聚合的思想

拆分 :将原来的一个项目拆分成一个个小的模块, 每个模块都有自己的坐标, 当其它项目需要本模块的功能时, 只需要按照坐标引入本模块就可以了

聚合: 通过坐标的形式,将各个模块组装在一起,完成一个项目的功能

零基础学习【Maven】这一篇就够了_第19张图片

3-2. 父子工程搭建

创建父工程

零基础学习【Maven】这一篇就够了_第20张图片

创建dao模块

零基础学习【Maven】这一篇就够了_第21张图片

创建service模块

零基础学习【Maven】这一篇就够了_第22张图片

创建web模块

零基础学习【Maven】这一篇就够了_第23张图片

建立依赖关系

零基础学习【Maven】这一篇就够了_第24张图片

3-3. 两套关系梳理

在上面的工程中, 存在两套关系

  • 父子工程之间: 继承关系, 子工程可以使用父工程中的jar包
  • 模块工程之间: 默认是没有任何关系的,但是可以通过依赖建立两者之间的关系,而且这个依赖关系是可以传递的
web---->service----->dao
	web---->service     service----->dao   直接依赖
	web---->dao     间接依赖

3-4. 依赖冲突

在依赖的传递过程中,很容易出现同一jar包的版本冲突问题,这个就称为依赖冲突

零基础学习【Maven】这一篇就够了_第25张图片

第一声明优先原则

在pom文件定义依赖,先声明的依赖为准。

零基础学习【Maven】这一篇就够了_第26张图片

路径近者优先原则

从依赖程序开始算起,到被依赖的程序,以路径短的为准。

零基础学习【Maven】这一篇就够了_第27张图片

依赖排除

依赖排除就是在依赖引入的过程中,通过exclusions标签排掉指定的跟随依赖

零基础学习【Maven】这一篇就够了_第28张图片

版本锁定

面对众多的依赖,有一种方法不用考虑依赖路径、声明优先等因素,可以采用直接锁定版本的方法确定依赖构件的版本

版本锁定后,系统会以锁定的版本的为准添加到工程中,此方法在企业开发中常用。

零基础学习【Maven】这一篇就够了_第29张图片

你可能感兴趣的:(Maven,学习,maven,java)