一、基础配置

1. 仓库配置

在 Maven 中引入了仓库的概念,开发人员将所编写的 JAR 按照相应格式推送到仓库中,当其他开发者需要引用这个 jar 包时在工程中引用相应依赖,则会先从中央仓库进行下载到本地仓库,此时项目将读取本地仓库的内容。

对于部分组织或机构通常会在此基础上额外搭建私人仓库,在引用依赖时会先从私人仓库进行读取,如果未找到再从中央仓库下载至私人仓库,最后再下载到本地仓库。

通过这种方式开发者则无需再手动管理繁杂的项目 JAR 包,从而实现更高的效率。

2. 基本信息

一个最基本的 Maven 项目通常应包含如下内容,当我们引用一个模块时,也是通过 groupId、 artifactId、 version 三项内容进行确定。

标 签 作 用
groupId 通常为组织或公司域名反写。
artifactId 项目的名称。
version 项目的版本信息。
name 项目的简称。
description 项目的简要描述。

下面是一个基本定义示例:

<?xml version="1.0" encoding="UTF-8"?>
<project ...>
<!-- 固定 4.0.0, 指定了当前 POM 模型的版本 -->
    <modelVersion>4.0.0</modelVersion>

    <groupId>xyz.ibudai</groupId>
    <artifactId>maven-demo</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <version>maven demo</version>
    <description>This is maven demo.</description>

</project>

二、依赖管理

1. 依赖引入

通过 dependencies 标签我们即可导入所需要的工程依赖。

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.27</version>
        <scope>runtime</scope>
    </dependency>
</dependencies>

其中 scope 的可选值如下:

作用域 效果
compile 编译时需要用到该 JAR 包(默认)
runtime 编译时不需要,但运行时需要用到。
provided 编译时需要用到,但运行时由 JDK 或某个服务器提供。
test 编译Test时需要用到该 JAR 包。

2. 间接依赖

当项目需要引用到其它依赖时,只需指定所依赖的工程的基本信息即可,剩下的一切都交给 Maven 处理。即便是所要依赖的工程依赖了其它工程,我们也只需引入项目所直接的依赖的工程。