资料格式
- 配置文件
com.itheima
- Java代码
Statement stat = con.createStatement();
- 示例
com.itheima
- 命令
mvn test
- Maven简介
传统项目管理状态分析
Maven 是什么
- Maven的本质是一个项目管理工具,将项目开发过程抽象成一个项目对象模型(POM)
- POM(Project Object Model):项目对象模型
Maven的作用 - 项目构建:提供标准,跨平台的自动化项目构建方式
- 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
- 统一开发结构:提供标准的,统一的项目结构
小节 - Maven是什么
- Manen的作用
- POM
- 下载安装
Maven下载地址
- 官网:http://maven.apache.org/
- 下载地址:http://maven.apache.org/download.cgi
maven安装目录
maven类加载器
maven环境变量配置
- 依赖Java,需要配置JAVA_HOME
- 设置maven自身的运行环境,需要配置MAVEN_HOME
- 检查maven配置是否成功
- Maven基础概念(重点)
仓库
-
仓库:用于存储资源,包含各种jar包
-
仓库分类:
本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
远程仓库:非本机电脑上的仓库,为本地仓库提供资源中央仓库:Maven团队维护,存储所有资源的仓库 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
-
私服作用:
保存具有版权的资源,包含购买或自主研发的iar
中央仓库中的jar都是开源的,不能存储具有版权的资源
一定范围内共享资源,仅对内部开放,不对外共享
坐标
-
什么是坐标?
Maven中的坐标用于描述仓库中资源的位置 https://repo1.maven.org/maven2/
-
Maven坐标主要组成
groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如:org.mybatis) artifactld:定义当前Maven项目名称(通常是模块名称,例如CRM、SMS) version:定义当前项目版本号 ~~packaging:定义该项目的打包方式~~
- 巨好用的mvn搜索网站
小节
-
坐标的概念与作用
-
坐标的组成
组织ID 项目ID 版本号
maven本地仓库搭建
-
Maven启动后,会自动保存下载的资源到本地仓库
默认位置 <localRepository>${user.home}/.m2/repository</localRepository> 当前目录位置为登录用户名所在目录下的.m2文件夹中 自定义位置 <localRepository>D:\mavenlrepository</localRepository> 当前目录位置为D:\mavenrepository文件夹中
远程仓库配置
- Maven默认连接的仓库位置
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</ur1>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
镜像仓库配置文件
- 在settting文件中配置阿里云镜像仓库
全局setting与用户setting区别
全局settting定义了当前计算器中Maven的公共配置
用户settting定义了当前用户的配置
如果局部setting和全局setting不一样,局部会覆盖全局setting
小节
配置本地仓库(资源下到哪)
配置阿里镜像仓库(资源从哪来)
settting文件的区别
- 第一个Maven项目(手工制作)(重点)
- 在java目录下创建一个Demo文件,打印一句
- 在test文件夹下创建测试文件,判断返回值是否正确
- 在src目录下添加pom文件(在bin目录查找)
Maven项目构建命令
-
Maven构建命令使用mvn开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔
mvn compile #编译 mvnea #清理 mvn test #测试 mvnackage #打包 mvn install #安装到本地仓库
- 第一个Maven项目(IDEA生成)(重点)
配置Maven
- IDEA对3.6.2及以上版本存在兼容性问题,为避免冲突,ldea忠安装使用3.6.1版本
创建一个空的工程
test运行一个程序
tomcat插件安装
- 依赖管理(重点)
依赖配置与依赖传递
-
依赖具有传递性
直接依赖:在当前项目中通过依赖配置建立的依赖关系 间接依赖:被资源的资源如果依赖其他资源,当前项目间接依赖其他资源
可选依赖
可选依赖指对外隐藏当前所有依赖资源–不透明
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<optional>true</optional>
</dependency>
排除依赖
- 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本–不需要
<dependengy>
<groupIdsjunit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId></exclusion>
</exclusions>
</dependency>
依赖管理
-
依赖范围
依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围
-
作用范围
主程序范围有效(main文件夹范围内) 测试程序范围有效(test文件夹范围内) 是否参与打包(package指令范围内)
- 生命周期与插件
构建生命周期
-
Maven对项目构建的生命周期划分为3套
clean:清理工作 default:核心工作,例如编译,测试,打包,部署等 site:产生报告,发布站点等
插件
插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功
默认maven在各个生命周期上绑定有预设的功能
通过插件可以自定义其他功能