概述
maven是一款项目管理工具,对Java进行构建,依赖管理
作用
- 依赖管理(解决jar包冲突)
- 项目构建(一键完成 编译,打包,部署,发布等操作)
环境搭建
- 安装:
直接解压即可
注意:目录中不要有中文和空格 - 环境变量:
创建MAVEN_HOME,路径配置maven的根目录。
在系统变量的path变量中添加 %MAVEN_HOME%\bin - 测试:
cmd中输入:mvn -v
输出版本信息即为环境搭建成功
仓库
本地仓库(本地的仓库)
远程仓库[私服])(公司搭建的仓库)
中央仓库(maven搭建的仓库,在国外)->可以使用阿里的仓库
- 项目中需要的依赖,会先从本地仓库去找,如果本地仓库没有,在联网的情况下, 会从中央仓库去下载。
- 在公司一般配有自己的远程仓库,当我们和远程仓库处于同一个局域网时,如果 本地仓库没有依赖,会先从远程仓库去找,如果远程仓库没有,远程仓库会从中央 仓库去下载
目录结构
bin 可执行的二进制文件。mvn指令
boot maven自身需要的一个文件。
conf\settings.xml maven的配置文件
lib maven运行自身需要的一些jar包。
本地仓库
<localRepository>本地仓库路径</localRepository>
项目结构介绍
普通java项目
- src
- main
- java Java源代码
- resources 项目资源,如property文件,xml文件等
- test 测试代码
- java 项目测试(junit)
- resources 测试用的资源
- main
- target 打包输出目录
- classes 编译输出目录
- test-classes 测试编译输出目录
- pom.xml 项目的信息和jar包的信息和插件的信息
web项目
- src
- main
- java Java源代码
- resources 项目资源,如property文件,xml文件等
- webapp
- WEB-INF web应用文件目录,图片,页面等
- test 测试代码
- java 项目测试(junit)
- resources 测试用的资源
- main
- target 打包输出目录
- classes 编译输出目录
- test-classes 测试编译输出目录
- pom.xml 项目的信息和jar包的信息和插件的信息
常用命令
clean
compile
test
package
install
deploy
6.常用的maven命令
clean:清理。把生成的字节码文件删除。
compile:编译。可以把src/main/java文件编译为字节码文件
test:测试。可以把src/test/java文件编译为字节码文件。
package:打包。可以把代码进行打包。
普通java项目打成jar包。可以提供给别人使用。
web项目打成war包。部署在服务器上。
可以在pom.xml文件中指定项目的打包方式。
install:安装。可以将打好的jar包复制到本地仓库中。
deploy:部署。帮我们把web项目的war包部署到服务器中。
7.maven的声明周期
maven对项目进行构建过程分为三套独立的生命周期。
清理周期:clean
默认周期:compile test package install deploy
站点生命周期:生成项目报告,站点,发布站点。
8.maven概念模型
1.通过 pom.xml 文件定义项目的坐标、项目依赖、项目信息、插件目标
2.依赖管理系统。通过 maven 的依赖管理对项目所依赖的 jar 包进行统一管理。
9.pom文件介绍:
dependencies : 里面是项目所需要的依赖坐标。
build:可以在此标签中给项目添加插件信息。
三、idea中配置maven环境
在Runner的VM options:
-DarchetypeCatalog=internal
创建普通java项目不建议使用骨架。
创建web项目建议使用骨架。webapp
jar包坐标:
https://mvnrepository.com/
compile:编译期,测试期,运行时都生效 例如:spring-core
test:测试期生效 例如:junit
provided:编译期,测试期有效 例如:servlet
runtime:测试期,运行时生效 例如:JDBC
system:编译期,测试期有效 本地的,maven仓库之外的类库
依赖范围由强到弱的顺序是:compile>provided>runtime>test
2.插件
POM
Project Object Model 项目对象模型
是 Maven 工程的基本工作单元,一个XML文件,包含项目的基本信息,用于描述项目构建,声明项目依赖等
支持的配置
- 项目依赖
- 插件
- 执行目标
- 项目构建profile
- 项目版本
- 项目开发者列表
- 相关邮件列表信息
pom.xml配置信息:
<!-- 根标签 -->
<project>
<!-- 模型版本 -->
<modelVersion>4.15</modelVersion>
<!-- 公司或组织的标志 -->
<groupId>com.dy.zrh</groupId>
<!-- 项目唯一Id 一个groupId下可能有多个项目,依靠artifactId来区分 -->
<artifactId>test</artifactId>
<!-- 版本号 -->
<version></version>
</project>
生命周期
验证 validate 验证项目 验证项目是否正确且所有必须信息是可用的
编译 compile 执行编译 源代码编译在此阶段完成
测试 Test 测试 使用适当的单元测试框架(例如JUnit)运行测试。
包装 package 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包
检查 verify 检查 对集成测试的结果进行检查,以保证质量达标
安装 install 安装 安装打包的项目到本地仓库,以供其他项目使用
部署 deploy 部署 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程