Maven 的基本配置

Maven 中仓库的概念

Maven 中的仓库是用拿过来存储所有项目的依赖关系的。当你创建一个 Maven 项目时,Maven 会通过依赖机制先到你本地仓库(自己维护的仓库)中寻找项目依赖的 Jar 包,若没有寻到该 Jar 包,则到远程仓库寻找(一般是公司维护的仓库),若再无,就到 Maven 的中央仓库里去寻找,下面用两张图演示:

Maven 项目获取 Jar 包的方式

Maven 中仓库的关系

Maven 仓库的配置

本地仓库的配置

默认情况下,Maven 的本地仓库资源库设置为 .m2 目录文件夹:

  • Unix/Mac OS X: ~/.m2
  • Windows: C:\Users\{username}\.m2

通常情况下,我们会改变默认的 .m2 目录下的默认本地存储文件夹的位置使其名称更加有意义,下面价绍如何修改本地的仓库路径:

  1. 找到 Maven 的安装路径下的 conf 下的 settings.xml 文件,将其打开

  1. 修改其 localRepository 标签,将其设置为你要该的文件夹地址

  1. 保存后,创建一个 Maven 项目,Maven 就会自动从远程仓库或者中央仓库自动下载 jar 包到本地文件夹下。

中央仓库的配置

当你建立一个 Maven 项目时,Maven 会自动检测你项目下的 pom.xml 文件,以确定需要哪些依赖。当 Maven 从本地以及远程仓库寻找不到依赖资源时,就会从 Maven 的中央储存库 http://repo1.maven.org/maven2/ 去寻找所需要的依赖资源,但是由于这个网站毕竟是国外的网站,所以相较其国内的服务网站,下载依赖文件时还是要慢些许,所以一般在 settings.xml 中将中央仓库的地址换成国内的阿里云中央仓库,配置如下

Maven 的依赖机制和 POM

在 Maven 依赖机制的帮助下自动下载所有必须的依赖库,并保持版本升级。让我们看一个案例研究,以了解它是如何工作的。假设你想使用 Log4j 作为项目的日志。这里你要做什么?

传统方式

总之就是所有的管理都需要自己做,如果有需要 Log4j 版本的升级,则需要再重复上述步骤一次。

Maven 的方式

  • 你需要知道 log4j 的 Maven 坐标,例如:
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
  • Maven 会自动下载 log4j 的 Maven 的 1.2.17 版本库
  • 声明 Maven 的坐标转换成 pom.xml 文件
<dependencies>
    <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
    </dependency>
</dependencies>
  • 当 Maven 编译或构建,log4f 的 jar 会自动下载,并把它放到 Maven 本地储存库
  • 所有由 Maven 管理

Maven 的 POM

一个 Maven 项目的骨架一般如下,其中最为重要的是 pom.xml 文件

POM 代表着项目对象模型。它是 Maven 中工作的基本单位,这是一个 XML 文件。它始终保持在该项目基本目录中的 pom.xml 文件中。

POM 包含的项目是用 Maven 来构建的,它用来包含各种配置信息。

POM 也包含了目标和插件。在执行任务或目标时, Maven 会读取当前项目中的 POM,然后执行目标。创建一个 POM 之前,应该要先决定项目组(grounpId),它的名字(artifactId)和版本,因为这些属性要保证在项目仓库中是唯一的标识的。下面是一个 POM 的例子

<?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>com.jojo</groupId>
    <artifactId>hello-maven</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

</project>

要注意的是,每个项目只有一个 pom.xml 文件

  • 所有的 POM 文件中项目元素必须有三个必要字段:grounpId、artifactId、version
  • pom.xml 的根元素是 project ,它的三个主要子节点如下:
节点 描述
groupId 这是项目组的编号,这在组织或项目中通常是独一无二的。 例如,一家银行集团 com.company.bank 拥有所有银行相关项目。
artifactId 这是项目的 ID。这通常是项目的名称。 例如,consumer-banking。 除了 groupId 之外,artifactId 还定义了 artifact 在存储库中的位置。
version 这是项目的版本。与 groupId 一起使用,artifact 在存储库中用于将版本彼此分离。 例如:com.company.bank:consumer-banking:1.0com.company.bank:consumer-banking:1.1

关于寻找依赖库的 Maven 坐标

访问 Maven repository: https://mvnrepository.com/

在搜索框中输入自己需要的依赖库后搜寻,选中自己需要的版本后就可以看到 Maven 坐标了

参考博客:https://funtl.com/zh/maven/

最新文章

  1. Bellman-Ford 单源最短路径算法
  2. Select Top在七种数据库中的使用方法(包含mysql)
  3. Saltstack常用模块及API
  4. 文本溢出text-overflow
  5. SHA1加密C#
  6. Codevs 2549 自然数和分解
  7. perl5 第十二章 Perl5中的引用/指针
  8. sharepoint 2013 附件控件FileUpload怎样检验是否为图片的方法
  9. 更改Calendar背景图(使用系统映像选择器)
  10. 【01-14】java ThreadLocal工具类
  11. ping命令使用技巧(一次Ping多个地址)
  12. Python学习【第十二篇】模块(2)
  13. 团队作业8——第二次项目冲刺(Beta阶段)--第三天
  14. Linux环境下启动MySQL数据库出现找不到mysqld.sock的解决办法!
  15. Array Partition I
  16. WinForm 国际化的一些问题
  17. tcp关闭状态详解
  18. 【中间件安全】IIS7.0 安全加固规范
  19. java8 数据结构的改变(二) 对ConcurrentHashMap影响
  20. AC自动机学习笔记-1(怎么造一台AC自动机?)

热门文章

  1. 三种方式配置Mac OS X的启动项
  2. So Good They Can&#39;t Ignore You
  3. Windows Phone开发参考资料
  4. Windows 10 (IIS 10)安装Microsoft Web Farm Framework Version 2.2 for IIS7问题
  5. chrome 浏览器的常用命令收录
  6. Java MaxDirectMemorySize
  7. Hibernate注解(二):关联关系映射注解
  8. 【Aizu - ALDS1_1_C】Prime Numbers(素数筛法)
  9. idea创建类报错
  10. 安装mysql apache php smb