Apache Maven project——软件管理工具
Maven 理解
Maven 作用
- Maven 可以管理 jar 文件
- 自动下载 jar 和它的的文档、源代码
- 管理 jar 直接的依赖
- 管理需要的 jar 版本
- 编译程序,把 java 编译为 class
- 测试代码是否正确
- 打包文件成 jar 文件或者 war 文件
- 部署项目
Maven 构建
项目的构建,面向过程
- 清理 (清理之前编译完成的文件)
- 编译 (可批量编译)
- 测试 (执行测试程序代码,验证程序的功能是否正确)
- 报告 (生成测试结构的文件,测试是否通过)
- 打包 (把 class 文件和配置文件等所有资源打包到一个压缩文件中
- 对于 java 程序,压缩文件是
.jar扩展名- 对于 web 应用,压缩文件扩展名是
.war- 安装 (把 5 中的文件 jar、war 安装到本机仓库)
- 部署 (把程序安装好可以执行)
Maven 核心概念
Maven 核心概念
- POM(project object model)
pom.xml文件,即项目对象模型,可以控制 maven 构建项目的过程,管理 jar 依赖
- 约定的目录结构
maven 中的目录和文件的位置都是规定的
- 坐标(gav)
三者相加构成唯一的字符串,表示资源
- 依赖管理
管理项目使用 jar 文件
- 仓库管理
资源存放的位置
- 生命周期
maven 工具构建项目的过程
清理、编译、报告、打包、安装、部署
- 插件和目标
执行 maven 偶见的时候用的工具是插件
继承
聚合
每一个 maven 项目在磁盘中都是一个文件夹(项目 -Hello)
Hello/
---/src
------/main #放你主程序java代码和配置文件
----------/java #你的程序包和包中的java文件
----------/resources #你的java程序中要使用的配置文件
------/test #放测试程序代码和文件的(可以没有)
----------/java #测试程序包和包中的java文件
----------/resources #测试java程序中要使用的配置文件
---/pom.xml #maven的核心文件(maven项目必须有)tree Hello cmd 命令
mvn compile 编译 src/main 目录下的所有 java 文件的
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-parameter-documenter-2.0.9.pom
https://repo.maven.apache.org ————中央仓库的地址
C:\Users\86159.m2\repository————本机仓库
Maven 常用命令
Maven 插件:maven 命令真正执行的是插件
test 单元测试
- junit,是一个专门测试的框架(工具)
- 方法是测试的基本单位
- maven 借助单元测试来批量测试
Maver 常用命令
- mvn clean
- mvn compile
- mvn test-compile
- mvn test
- mvn package
- mvn install
- mvn deploy
IDEA 配置
配置的入口 ①:配置当前工程的设置, file--settings ---Build, Execution,Deployment--Build Tools
--Maven
Maven Home directory: maven 的安装目录
User Settings File : 就是 maven 安装目录 conf/setting.xml 配置文件
Local Repository : 本机仓库的目录位置
--Build Tools--Maven--Runner
VM Options : archetypeCatalog=internal
JRE: 你项目的 jdk
archetypeCatalog=internal , maven 项目创建时,会联网下载模版文件,
比较大, 使用 -DarchetypeCatalog=internal,不用下载, 创建 maven 项目速度快。
②:配置以后新建工程的设置, file--other settings--Settings for New Project
更新版本号
-DgenerateBackupPoms=false 不生成备份文件
mvn versions:set -DnewVersion=1.0.2-SNAPSHOT
mvn -N versions:update-child-modules
#版本回滚,提交后就无法回滚了
mvn versions:revert
#版本提交
mvn versions:commit关于在 maven 项目中配置文件资源导出问题
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>