Maven(二)Maven 的基本配置
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
目录下的默认本地存储文件夹的位置使其名称更加有意义,下面价绍如何修改本地的仓库路径:
- 找到
Maven
的安装路径下的conf
下的settings.xml
文件,将其打开
- 修改其
localRepository
标签,将其设置为你要该的文件夹地址
- 保存后,创建一个
Maven
项目,Maven
就会自动从远程仓库或者中央仓库自动下载 jar 包到本地文件夹下。
中央仓库的配置
当你建立一个 Maven 项目时,Maven 会自动检测你项目下的 pom.xml
文件,以确定需要哪些依赖。当 Maven 从本地以及远程仓库寻找不到依赖资源时,就会从 Maven 的中央储存库 http://repo1.maven.org/maven2/ 去寻找所需要的依赖资源,但是由于这个网站毕竟是国外的网站,所以相较其国内的服务网站,下载依赖文件时还是要慢些许,所以一般在 settings.xml
中将中央仓库的地址换成国内的阿里云中央仓库,配置如下
Maven 的依赖机制和 POM
在 Maven 依赖机制的帮助下自动下载所有必须的依赖库,并保持版本升级。让我们看一个案例研究,以了解它是如何工作的。假设你想使用 Log4j 作为项目的日志。这里你要做什么?
传统方式
- 访问 http://logging.apache.org/log4j/
- 下载 Log4f 的 jar 库
- 复制 jar 到项目类路径
- 手动将其包含到项目的依赖
总之就是所有的管理都需要自己做,如果有需要 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.0 ,com.company.bank:consumer-banking:1.1 |
关于寻找依赖库的 Maven 坐标
访问 Maven repository: https://mvnrepository.com/
在搜索框中输入自己需要的依赖库后搜寻,选中自己需要的版本后就可以看到 Maven 坐标了
参考博客:https://funtl.com/zh/maven/
Maven(二)Maven 的基本配置的更多相关文章
- maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)
前一节我们明白了maven是个什么玩意,这一节就来讲讲他的一个重要的应用场景,也就是通过maven将一个ssh项目分割为不同的几个部分独立开发,很重要,加油 --WH 一.maven父工程与子模块的拆 ...
- 转帖:maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)
出处:http://www.cnblogs.com/whgk/p/7121336.html 前一节我们明白了maven是个什么玩意,这一节就来讲讲他的一个重要的应用场景,也就是通过maven将一个ss ...
- Maven pom.xml 全配置(二)不常用配置
Maven pom.xml 全配置(二)不常用配置 这里贴出Maven pom.xml文件中使用率较少的配置参数,如果此篇文档中没有找到你想要的参数,移步Maven pom.xml 全配置(一)常用配 ...
- 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)
[项目管理和构建]十分钟教程,eclipse配置maven + 创建maven项目(三) 上篇博文中我们介绍了maven下载.安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合 ...
- eclipse配置maven + 创建maven项目(三)
上篇博文中我们介绍了maven下载.安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合,并我们创建一个maven的项目. 准备工作 在eclipse配置maven之前需要我们做 ...
- Maven以及在Maven在Myeclipse中的配置
一.maven安装与配置1.到官网http://maven.apache.org/download.cgi下载maven压缩包,解压到指定文件夹.如:D:\apache-maven-3.3.92.添加 ...
- 1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project
使用Maven+SpringMVC+Eclipse软件安装配置过程中的问题: 1.Eclipse总是卡死的解决办法: 一:内存不足所以会卡死,配置一下eclipse.ini修改这几个值就好了-X ...
- maven的安装和环境配置
一.下载maven Apache Maven下载地址:http://maven.apache.org/download.cgi 二.maven的安装 将下载好的安装文件解压到d盘根目录下即可(当然,这 ...
- maven安装与环境变量配置
一.什么是maven Maven基于项目对象模型(POM Project Object Model),可以通过一小段描述信息(配置文件)来管理项目的构建.报告和文档的软件项目管理工具. 同时也是跨平台 ...
- Maven下载与环境变量配置
前言: Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK.如果还未安装 JDK,可以参考Win10下JDK下载与环境变量配置. 项目 要求 JDK Maven 3.3+ ...
随机推荐
- Delphi 10.2 Linux 程序开发环境部署的基本步骤(网络连接方式要选择桥接或者是Host Only)
Delphi 10.2 Linux 程序开发环境部署的基本步骤 http://blog.qdac.cc/?p=4477 升級到 Delphi 10.2 Tokyo 笔记http://www.cnblo ...
- Windows 各种计时函数总结(QueryPerformanceCounter可以达到微秒)
本文对Windows平台下常用的计时函数进行总结,包括精度为秒.毫秒.微秒三种精度的5种方法.分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock ...
- Windows XP 每次开机都自动检测硬盘 解决办法(可以用HDDRegenerate修复坏道)
Windows XP,每次开机都自动检测硬盘,之前正常关机,没有任何非法操作.Windows XP,每次开机都自动检测硬盘,之前正常关机,没有任何非法操作. 1.和硬盘的分区格式有关,FAT32格式在 ...
- 什么水平算精通C++ Builder?
主 题: 大家讨论一下什么水平算精通C++ Builder?(我这样算什么,马上要毕业了,不知道如何评价自己) //C++ builder 使用时间3年 熟悉VCL源代码 开发过3 ...
- Ubuntu下使用Docker搭建MySQL步骤备忘
docker 安装和 pull MySQL镜像这里就不介绍了,很多介绍,建议去docker官方网站查看. 本文主要介绍MySQL container 运行起来之后的一些配置 在往下看之前,确保 doc ...
- 关于防范csrf攻击基于token鉴权
在web开发中,之前都使用cookie + session方式来实现身份认证鉴权.但是现在前后端分离,以及终端有可能不支持cookie的情况下,一般都采用token方式.现在系统设计思路如下: 服务端 ...
- nginx(一) nginx详解
nginx是一个被广泛使用的集群架构组件,我们有必要对它有足够的了解.下面将先认识nginx:包括应用场景.nginx基本架构.功能特性.并发模型以及配置说明,最后我们再总结下,为什么选择nginx的 ...
- 每日一问:到底为什么属性动画后 View 在新位置还能响应事件
在 Android 开发中,我们难免会使用动画来处理各种各样的动画效果,以满足 UI 的高逼格设计.对于比较复杂的动画效果,我们通常会采用著名的开源库:lottie-android,或许你会对 lot ...
- 从理论到实践,全方位认识HTTP/2
前言 为了降低加载时间,相信大多数人都做过如下尝试 - Keep-alive: TCP持久连接,增加了TCP连接的复用性,但只有当上一个请求/响应完全 完成后,client才能发送下一个请求 ...
- Node.js实现PC端类微信聊天软件(二)
Github StackChat 用到的React-Router React-Router是React路由的解决方案之一,也可以使用别的库 安装 npm install react-router -- ...