0%

【Maven】Maven的核心概念

开始深入了解Maven,学习笔记

一、Maven工程预定目录结构

project(项目)
| —- src(源代码)
| —- —- main(主程序)
| —- —- —- java(主程序java源码)
| —- —- —- resources(java程序中要使用的配置文件)
| —- —- test(测试程序)
| —- —- —- java
| —- —- —- resources
| —- pom.xml (Maven核心文件)


二、Maven使用

  • Maven第一次使用会下载文件
    • 下载的是Maven工具执行需要的插件
    • 下载位置为:C:\Users\”用户名”.m2\repository(本地仓库)
  • 修改本地仓库位置
    • (1)在修改文件之前,先将文件进行备份,方便复原
    • (2)找到Maven安装目录下的conf\settings.xml
    • (3)修改localRepository来指定你的目录,非中文目录

三、仓库

  • 存放maven使用的插件,项目使用的jar(第三方工具包)
  • 分类:
    • 本地仓库:个人计算机上的文件夹,存放各种jar
    • 远程仓库:在互联网上,使用网络才能使用的仓库
      • 中央仓库:最权威的,所有开发人员都共享的一个集中仓库
      • 中央仓库镜像:中央仓库的备份,在各大洲,重要的城市都有镜像
      • 私服:在公司内部,在局域网中使用,不对外使用
  • 仓库使用:不需要人为参与,maven自己使用

四、POM

  • Project Object Model ,项目对象模型,特指pom.xml文件

4.1 pom文件标签

标签 说明
modelVersion Maven版本,通常4.0.0
groupId 组织id,一般是公司域名的倒写
artifactId 项目名称,也是模块名称
version 项目版本号;如果带有-SNAPSHOT,表示不稳定版本
packaging 项目打包的类型:jar、war…;默认jar
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.example</groupId>
<artifactId>Maven入门</artifactId>
<version>1.0-SNAPSHOT</version>

</project>
  • 其中groupId、artifactId、version组成坐标;用来唯一表示一个jar文件
标签 说明
dependencies 管理jar包
dependency 管理具体的jar包,里面填写坐标
properties 设置配置属性
build 与构建相关的配置
parent 继承父工程pom的设置
modules 子模块
1
2
3
4
5
6
7
8
9
10
设置依赖(导入jar包)
<dependencies>
<dependency>
<!--配置单元测试-->
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
  • 如果要导入相关jar包,可以通过maven配置依赖的形式进行导入
  • maven中央仓库搜索网:https://mvnrepository.com/
    • 可以在此查看相关jar包Maven的依赖编写,或直接下载jar包
    • 搜索条件为:groupId,或artifactId

4.2 依赖管理

  • 在上面依赖举例中,出现了<scope>标签,此标签标示依赖作用的范围
    • 有三个参数:compile、test、provided,没有此标签默认为compile
      • compile:在生命周期编译、测试、打包、部署都起作用
      • test:只在测试阶段起作用
      • provided:在编译、测试阶段起作用
compile test provided
编译
测试
打包
部署

五、Maven生命周期及代码

  • Maven生命周期,就是构建项目的过程
    • 清理,编译,测试,报告,打包,安装,部署
  • mvn clean:清理
  • mvn compile:编译主程序
  • mvn test-compile:编译测试程序
  • mvn test:测试(会生成一个surefire-reports,保存测试结果)
  • mvn package:打包主程序(封装为jar包)
  • mvn install:安装主程序(将jar包复制到本地仓库)
  • mvn deploy:部署主程序
  • 注意 : 以上命令都在pom.xml所在目录执行

六、插件

  • Maven执行上述的命令,都是使用到插件来进行

  • 插件可以通过在pom.xml,进行信息配置修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean插件:执行clean操作-->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- resources插件:把项目需要的配置文件拷贝到指定 -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<!-- compile插件:执行编译操作 -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<!--package打包插件:执行打包操作-->
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<!--install插件:执行安装操作-->
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<!--deploy插件:执行部署操作-->
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<!--reports插件:执行报告操作-->
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>