Maven的基本原理

  • Maven的作用是什么
  • Maven的基本原理
    • 本地仓库
    • 远程仓库
      • 中央仓库
      • 私服
    • maven引入jar包的过程

Maven的作用是什么

1、假设我们有10个项目,都需要引入某个模块,那么需要引入十份重复的模块相关的jar包。
使用Maven:maven使用本地仓库存储的jar,所有项目都会公用仓库中的同一分jar。

2、如果引入的jar包互相依赖,那么两个或多个jar包需要相应的版本才能运行,否则会报错。
使用Maven:maven不需要关心这些问题,会自动引入jar所需的兼容版本jar。

3、如果一个项目里面有个100个jar,不知道那些jar是彼此关联的,那些是互相排斥的,当需要升级版本时,增加或删除一些jar,很容易出各种问题。
使用Maven:maven升级jar,只需要把版本3.x改成4.x,他会自动解决那些问题。

概括的说:Maven是一个项目管理和综合工具。Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。Maven增加可重复性并负责建立相关的业务。

Maven的基本原理

本地仓库

本地仓库:顾名思义,就是Maven在本地存储构件的地方。
注:maven的本地仓库,在安装maven后并不会创建,它是在第一次执行maven命令的时候才被创建。

maven本地仓库的默认位置:无论是Windows还是Linux,在用户的目录下都有一个.m2/repository/的仓库目录,这就是Maven仓库的默认位置。
如何更改maven默认的本地仓库的位置:这里要引入一个新的元素:localRepository,它是存在于maven的settings.xml文件中。
<localRepository>D:/myworkspace/maven_repository</localRepository>

远程仓库

中央仓库

中央仓库是默认的远程仓库,maven在安装的时候,自带的就是中央仓库的配置。

私服

私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构件上传到私服上。

maven引入jar包的过程

maven项目如果引入了一个模块中的jar包,会首先从本地仓库查找对应的jar包,如果找不到的话就去远程仓库拉取(下载到本地),这样下一次在本地使用这个jar包时就可以直接从本地引入了。

如果去远程拉取时都在中央仓库拉取,那么中央仓库的负载会非常大,所以一些公司在局域网中会设置私服,远程拉取首先去私服拉取,如果私服有这个jar包就不再去访问中央仓库,如果没有再由私服去中央仓库拉取,之后再给本地仓库,之后这个局域网中再使用这个jarbao就直接在私服拉取而不需要访问中央仓库,以减少对中央仓库的压力。

Maven的基本原理相关推荐

  1. MAVEN 傻瓜式快速教程

    MAVEN 快速教程 一.MAVEN概念和安装 ​ Maven 是专门用于构建和管理Java相关项目的工具,Maven是意第绪语,依地语(犹太人使用的国际语),表示专家的意思. 所以用Maven管理J ...

  2. Maven的基本原理和Maven2的新特性

    用Maven做项目管理 在Java世界中我们很多开发人员选择用Ant来构建项目,一个build.xml能够完成编译.测试.打包.部署等很多任务,但我们也碰到了很多的问题,如jar文件管理混乱,各个项目 ...

  3. 【Maven入门】Maven概述

    1.定义 Maven 作为 Apache 的一个开源项目,旨在给项目管理提供更多的支持,它最早的意图只是为了给 apache 组织的几个项目提供统一的开发.测试.打包和部署,能让开发者在多个项目中方便 ...

  4. java变量用来干嘛_Java

    一.Maven的简介 1.Maven是什么? Apache Maven是一个软件项目管理的综合工具.基于项目对象模型(POM)的概念,提供了帮助管理构建.文档.报告.依赖.发布等方法,Maven简化和 ...

  5. Java-Maven详解

    文章目录 一.什么是Maven? 1)Maven好处 2)作用 二.Maven的基本原理 三.Maven安装 1)Window安装Maven 1.解压 2.Maven环境变量配置 3.验证 4.配置本 ...

  6. maven-自定义插件

    #Maven插件基本原理 ##一.什么是maven插件 Maven 是一个执行插件的框架,每一个任务实际上是由插件完成的.Maven 插件通常用于: 创建 jar 文件 创建 war 文件 编译代码文 ...

  7. XGBoost4J-Spark基本原理

    XGBoost4J-Spark基本原理 XGBoost4J-Spark是一个项目,旨在通过使XGBoost适应Apache Spark的MLLIB框架,无缝集成XGBoost和Apache Spark ...

  8. maven(三)最详细的profile的使用

    文章目录 前言 1. 原理 2. 应用演示 2.1 项目结构 2.2 激活方式 1. 通过maven命令参数 2. 通过pom文件里的activation属性 3. settings.xml中使用ac ...

  9. eap aka_使用API​​密钥(aka身份验证令牌)部署到Maven Central

    eap aka 如何在不使用未加密本地密码的情况下与Maven Central / Nexus通信(尤其是使用Gradle,但不仅限于此). 基本原理 不幸的是,Gradle(和许多其他构建工具)没有 ...

最新文章

  1. 卡成PPT不开心?GAN也能生成流畅的连续表情了 |ECCV Oral · 代码
  2. Day34 数据库的增、删 、改、查
  3. 动态折线图 python_python 怎么做个动态折线
  4. Qt中使用OpenSSL
  5. Service 的生命周期;两种启动方法和区别
  6. php 高效缓存类,简单高效的文件缓存php类
  7. 【Linux】设置虚拟内存
  8. 大数据学习笔记51:Flume Channel Selectors(Flume通道选择器)
  9. Teamcenter - Index search 找不到相关物件的解决方法
  10. 巩固知识体系!淘宝秒杀脚本java
  11. 牵手大众、现代,滴滴绯闻“女友”Aurora无人车启动商业化
  12. Java I/O系统之转换流
  13. iOS GBK转换为Utf8
  14. jetty文件服务器,在Jetty中访问Web容器外部的文件
  15. 2013年最新省市区三级联动mysql数据库_省市区三级联动菜单(附数据库)
  16. 信号与系统学习之第一章(系统的六大基本性质定义与判别:无记忆性、可逆性、因果性、稳定性、时不变性、线性)
  17. 使用python画二元二次函数(笔记)
  18. Android HID触摸屏驱动怎么开发
  19. mysql查询员工表中所有员工入职20个月之后的日期_新员工入职指南
  20. 为 WSO2 ESB 5.0.0 集群配置 MySQL 数据库

热门文章

  1. Unity小游戏——移动的小船船(船体在水面上晃动)
  2. Linux系统安装迷你世界,迷你世界国际服最新版
  3. 《基于GPU加速的计算机视觉编程》学习笔记(2)
  4. 量子密钥分发B92协议——笔记
  5. win10鼎信诺为什么安装不了_Win10升级安装为什么会偶遇失败?原因居然是这个...
  6. textarea 换行问题
  7. 【转】学习3D引擎架构技术概述
  8. 无法打开项目文件: .csproj,此安装不支持该项目类型,怎么解决?
  9. JSP九大内置对象的作用和用法总结
  10. Linux卸载软件的三种方式