maven核心总结目录
1. maven核心概念
1.1 maven约定的目录规则
例如:创建项目工程test-maven
test-maven/
|—/src
|------/main #放你主程序java代码和配置文件
|----------/java #你的程序包和包中的java文件
|----------/resources #你的java程序中要使用的配置文件
|------/test #放测试程序代码和文件的(可以没有)
|----------/java #测试程序包和包中的java文件
|----------/resources #测试java程序中要使用的配置文件
|—/pom.xml #maven的核心文件(maven项目必须有)
1.2 设置本机仓库
1.2.1 仓库概念
- 仓库是存放东西的, 存放maven使用的jar 和 我们项目使用的jar
- 存放的内容
- maven使用的插件(各种jar)
- 项目使用的jar(第三方的工具)
1.2.2 仓库分类
- 本地仓库, 就是你的个人计算机上的文件夹,存放各种jar
- 远程仓库, 在互联网上的,使用网络才能使用的仓库
- 中央仓库,最权威的, 所有的开发人员都共享使用的一个集中的仓库,https://repo.maven.apache.org :中央仓库的地址
- 中央仓库的镜像:就是中央仓库的备份, 在各大洲,重要的城市都是镜像。
- 私服,在公司内部,在局域网中使用的, 不是对外使用的。
1.2.3 本地仓库设置
- maven仓库的使用不需要人为参与。
找到下列目录下的文件编辑即可
1.3 pom文件解析
- Project Object Model 项目对象模型。Maven 把一个项目的结构和内容抽象成一个模型,在 xml 文件中进行声明,以方便进行构建和描述,pom.xml 是 Maven 的灵魂。所以,maven 环境搭建好之后,所有的学习和操作都是关于 pom.xml 的。
属性名 | 属性含义 |
---|---|
groupId | 组织 id,一般是公司域名的倒写。 格式可以为 com.baid |
artifactId | 项目名称,也是模块名称。 |
version | 项目版本号 |
packaging | 项目打包的类型,可以使 jar、war、rar、ear、pom,默认是 jar |
dependencies 和dependency | Maven 的一个重要作用就是管理 jar 包,为了一个项目可以构建或运行,项目中不可避免的,会依赖很多其他的 jar 包,在 Maven 中,这些 jar 就被称为依赖,使用标签 dependency 来配置。 |
properties | properties 是 用 来 定 义 一 些 配 置 属 性 的 , 例 如project.build.sourceEncoding(项目构建源码编码方式),可以设置为UTF-8,防止中文乱码,也可定义相关构建版本号,便于日后统一升级。 |
build | build 表示与构建相关的配置,例如设置编译插件的 jdk 版本 |
parent【了解】 | 在 Maven 中,如果多个模块都需要声明相同的配置,例如:groupId、version、有相同的依赖、或者相同的组件配置等,也有类似 Java 的继承机制,用 parent 声明要继承的父工程的 pom 配置。 |
modules【了解】 | 在 Maven 的多模块开发中,为了统一构建整个项目的所有模块,可以提供一个额外的模块,该模块打包方式为 pom,并且在其中使用 modules 聚合的其它模块,这样通过本模块就可以一键自动识别模块间的依赖关系来构建所有模块,叫 Maven 的聚合。 |
示例:
<groupId>com.lcl</groupId>
<artifactId>ch03-maven-web</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>ch03-maven-web Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<!--maven构建项目,使用的编码方式-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--编译代码使用的jdk版本号-->
<maven.compiler.source>1.8</maven.compiler.source>
<!--运行程序使用的jdk版本号-->
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
1.4 maven 的生命周期、命令、插件概述
声明周期
对项目的构建是建立在生命周期模型上的,它明确定义项目生命周期各个阶段,并且对于每一个阶段提供相对应的命令,对开发者而言仅仅需要掌握一小堆的命令就可以完成项目各个阶段的构建工作。
构建项目时按照生命周期顺序构建,每一个阶段都有特定的插件来完成。不论现在要执行生命周期中的哪个阶段,都是从这个生命周期的最初阶段开始的。
对于我们程序员而言,无论我们要进行哪个阶段的构建,直接执行相应的命令即可,无需担心它前边阶段是否构建,Maven 都会自动构建。这也就是 Maven 这种自动化构建工具给我们带来的好处。
maven命令【了解,不需要记忆】
- mvn clean 清理(会删除原来编译和测试的目录,即 target 目录,但是已经 install 到仓库里的包不会删除)
- mvn compile 编译主程序(会在当前目录下生成一个 target,里边存放编译主程序之后生成的字节码文件)
- mvn test-compile 编译测试程序(会在当前目录下生成一个 target,里边存放编译测试程序之后生成的字节码文件)
- mvn test 测试(会生成一个目录surefire-reports,保存测试结果)
- mvn package 打包主程序(会编译、编译测试、测试、并且按照 pom.xml 配置把主程序打包生成 jar 包或者 war 包)
- mvn install 安装主程序(会把本工程打包,并且按照本工程的坐标保存到本地仓库中)
- mvn deploy 【一般不用】部署主程序(会把本工程打包,按照本工程的坐标保存到本地库中,并且还会保存到私服仓库中。还会自动把项目部署到 web 容器中)
2. IDEA中maven的配置
2.1 配置maven
2.2 使用maven创建WEB项目
- 首先创建一个空项目,在项目里面新建moudle
新建项目名
出现下方内容表示创建成功
模板目录是不够的,需要做出修改:
修改后如下:
到这里基于maven的项目就创建成功了