文章目录
- 一. 概述
- 1. 为什么要学这个技术?
- 2. maven的自动化构建
- 3. Maven项目架构管理工具
- 4. 下载安装Maven
- 5. 配置环境变量
- 6. 配置阿里云镜像
- 7. 建立本地仓库
- 7.1 什么是maven仓库
- 7.1 maven仓库的分类
- 8. Maven常用命令
- 8.1 原型命令
- 8.2 编译命令
- 8.3 清理命令
- 8.4 测试命令
- 8.5 打包命令
- 8.6 安装命令
- 二. 在IDEA中使用Maven
- 1. 创建一个Maven web项目教程
- 2. 创建一个普通的java项目
- 3. maven的依赖坐标
- 4. pom文件
- 4. IDEA中使用Maven
- 5. IDEA生成目录树
- 三. 在IDEA中配置Tomcat
- 1. 配置方式
- 2. 常见问题
- 2.1 找不到相应的war包
- 2.2 maven默认的web项目中的web.xml版本问题
- 四. Maven仓库的使用
一. 概述
概念:
- Maven 是 Apache 软件基金会组织维护的一款自动化构建工具,专注服务于Java平台的项目构建和依赖管理。
核心构成:
- Maven 是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑
1. 为什么要学这个技术?
- 在javaweb开发中,需要使用大量的jar包,我们手动去导入;
- 如何能够让一个东西自动帮我导入和配置这个jar包
- 由此Maven诞生了
- jar依赖的引入:之前拷贝jar包的操作,随着项目增多,磁盘里面jar包会增加,这样会占用越来越多磁盘空间。Maven里面我们使用坐标来引入jar依赖。(依赖就是我们之前说的jar包)
- jar依赖的获取:之前下载jar包,我们通常是登录官网去下载。这样的操作比较麻烦。Maven提供了依赖仓库。
- jar依赖的传递:当前项目引入其他项目的时候,可以将引入项目里面的jar直接使用。
- 项目的模块化管理:maven提供了原型模块化操作。内置一些项目模板,我们使用命令来创建项目结构。
2. maven的自动化构建
概念:
- 构建就是以我们编写的 Java 代码、框架配置文件、国际化等其他资源文件、JSP 页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程。
构建过程的几个主要环节:
- ①清理:删除以前的编译结果,为重新编译做好准备。(删除.class文件)
- ②编译:将 Java 源程序编译为字节码文件。(.java文件转换成.class文件)
- ③测试:针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性 (代码编写完成之后对功能代码的测试运行)
- ④报告:在每一次测试后以标准的格式记录和展示测试结果 (测试报告:代码的Bug 及其他的说明)
- ⑤打包:将工程封装为一个压缩文件,Java工程对应jar 包,Web工程对应 war包. (开发完成之后将项目代码统一压缩成一个包,最终需要部署到服务器上使用)
- ⑥安装:将打包的结果jar 包或 war 包安装到本地仓库中。
- ⑦部署:将打包的结果部署到远程仓库或将 war 包部署到服务器上运行
Maven把以上的操作整合到一起,实现了机械化的构建,也就是我们说的自动化构建。
3. Maven项目架构管理工具
我们目前用来就是方便导入jar包的
Maven核心思想:约定大于配置
- 有约束,不要去违反
Maven会规定好你该如何去编写我们的java代码,必须按照这个规范
4. 下载安装Maven
官网下载https://maven.apache.org/
下载完之后,解压即可;
5. 配置环境变量
测试Maven是否配置完毕
6. 配置阿里云镜像
镜像:mirrors
- 作用:加速我们的下载
- 国内建议使用阿里云的镜像
7. 建立本地仓库
7.1 什么是maven仓库
在 Maven 的术语中,仓库是一个位置(place)。Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。在 Maven 中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。
通俗的理解就是存放jar包的地方。
7.1 maven仓库的分类
在本地的仓库,对应还有一个远程仓库
1、本地仓库:本地磁盘仓库
- ①系统默认的:C:\Users\admin.m2
- ②自定义仓库:根据自己的设置(推荐使用)
2、远程仓库:
- 中央仓库:服务器在国外,所有的资源都可以找到。访问比较慢
https://mvnrepository.com/ - 镜像仓库:国内的一些企业将中央仓库的资源下载到国内。比较常见的:阿里云(推荐)、华为云、腾讯云
- 私服仓库:企业内部搭建的局域网服务器
自己建立一个本地仓库:maven-repo
8. Maven常用命令
IDEA中自带了
8.1 原型命令
- 项目原型命令:使用命令一键生成项目
语法:mvn archetype:generate
使用命令生成的项目,直接可以使用eclipse或idea等开发工具打开。
注意:你在哪个盘位置进行此命令,就会在该盘位置创建项目
8.2 编译命令
- 语法:mvn compile
- 作用:将项目进行编译,将主程序java文件转换成class文件,maven项目中会生成一个target目录
- 注意事项:执行命令需要先进入到之前创建好的项目目录下
8.3 清理命令
语法:mvn clean
作用:将项目的编译后的文件删除,也就是将maven项目下的taget目录删除,目的是为了再次编译的进行。
8.4 测试命令
语法:mvn test
作用:运行项目中的测试文件代码,对功能进行测试
说明:
执行测试命令之前先执行了编译命令:将主程序文件和测试文件都进行了编译
8.5 打包命令
语法:mvn package
作用:将maven项目打包成jar或者war.普通的java项目打包成jar,web项目名打包成war。
说明:
- 执行打包命令之前会执行编译命令和测试命令
- 会在target目录下生成jar或者war包:默认生成jar规范的包(项目名+版本号.jar),war包(项目名称.war)
8.6 安装命令
语法:mvn install
作用:将项目安装到本地仓库,可以提供给其他项目使用
说明:
- 执行安装命令之前执行了编译命令和测试命令以及打包命令
- 本地仓库中会生成一个当前项目的jar包或war
二. 在IDEA中使用Maven
1. 创建一个Maven web项目教程
创建一个Maven web项目,使用模板尝试一下
Maven的GAV
maven地址也有自带的,但是比较少的模板
等待项目导入,初始化完毕
观察maven仓库中多了什么东西?
IDEA中Maven设置
- IDEA项目创建成功后,看一眼Maven的配置
到这里,Maven在IDEA中的配置和使用就OK了
web maven的标准目录结构
- 标准目录结构中,如果缺少某个目录,我们可以自己手动创建选择
2. 创建一个普通的java项目
在这里可以手动添加项目依赖,然后maven会自动导入jar包
3. maven的依赖坐标
几何中坐标:x y z 表示一个元素在空间中的位置
Maven坐标:groupId artifactId version通过这三个参数确定一个唯一的依赖。
- 确定项目在本地仓库的位置:查找本地仓库中安装后的jar或者war包
- 确定引入的依赖jar包:jdbc dbutisl
项目中引入依赖方式:通过坐标形式引入依赖,也就是我们之前的jar的引入。
- 获取依赖的坐标的方式:maven中央仓库获取
https://mvnrepository.com/
4. pom文件
pom.xml是maven的核心配置文件
POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。
执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。
POM 中可以指定以下配置:
- a.项目依赖
- b.插件
- c.执行目标
- d.项目构建 profile
- e.项目版本
- f.项目开发者列表
- g.相关邮件列表信息
maven由于他的约定大于配置,我们之后可能遇到我们写的配置文件,无法被导出或者生效的问题
解决方案:在bulid中配置resource,来防止我们资源导出失败的问题
当有些依赖报红的话:那么我们可以通过刷新maven重写下载jar依赖
4. IDEA中使用Maven
这个只有在Web应用下才会有在IDEA中标记文件夹功能
或者使用如下方式
选中当前项目
5. IDEA生成目录树
三. 在IDEA中配置Tomcat
1. 配置方式
方式一:
先创建一个maven web项目
和普通的web项目一样。配置本地的tomcat服务器即可
local表示本地服务器
remote表示远程的tomcat服务器
警告:没有一个人工的配置解决警告问题
为什么会有这个问题:我们访问一个网站,需要指定一个文件夹的名字;
然后启动tomcat
第二种方式:maven中配置tomcat插件:pom.xml中设置插件
2. 常见问题
2.1 找不到相应的war包
注意:使用maven3.6.3的时候,会有一些问题
2.2 maven默认的web项目中的web.xml版本问题
这个生成的版本比较老,我们应该参考tomcat中webapps下的默认的ROOT项目中的WEB-INF里面的web.xml文件中的dtd。
四. Maven仓库的使用
Maven仓库https://mvnrepository.com/进行查找下载对应的dependencies
然后使用,如果爆红的话,就alt+enter然后添加到maven