1. Maven仓库

1.1. 在Maven的术语中, 仓库是一个位置(place)。

1.2. Maven仓库是项目中依赖的第三方库, 这个库所在的位置叫做仓库。

1.3. 在Maven中, 任何一个依赖、插件或者项目构建的输出, 都可以称之为构件。

1.4. Maven仓库能帮助我们管理构件(主要是JAR), 它就是放置所有JAR文件(WAR, ZIP, POM等等)的地方。

1.5. Maven仓库有三种类型:

  • 本地(local)
  • 中央(central)
  • 远程(remote)

2. 本地仓库

2.1. Maven的本地仓库, 在安装Maven后并不会创建, 它是在第一次执行maven命令的时候才被创建。

2.2. 运行Maven的时候, Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有, 它会首先尝试从远程仓库下载构件至本地仓库, 然后再使用本地仓库的构件。

2.3. 默认情况下, 不管Linux还是Windows, 每个用户在自己的用户目录下都有一个路径名为.m2/repository/的仓库目录。

2.4. Maven本地仓库默认被创建在%USER_HOME%目录下。要修改默认位置, 在%MAVEN_HOME%/conf目录中的Maven的settings.xml文件中定义另一个路径。

3. 中央仓库

3.1. Maven中央仓库是由Maven社区提供的仓库, 其中包含了大量常用的库。

3.2. 中央仓库包含了绝大多数流行的开源Java构件, 以及源码、作者信息、SCM、信息、许可证信息等。一般来说, 简单的Java项目依赖的构件都可以在这里下载到。

3.3. 中央仓库的关键概念:

  • 这个仓库由Maven社区管理。
  • 不需要配置。
  • 需要通过网络才能访问。

3.4. Maven内置了一个中央仓库地址, 访问的url可以从%MAVEN_HOME%\lib\maven-model-builder-3.8.4.jar\org\apache\maven\model\pom-4.0.0.xml找到

3.5. 访问中央仓库https://repo.maven.apache.org/maven2

4. 远程仓库(可以在企业内部局域网中使用)

4.1. 如果Maven在中央仓库中也找不到依赖的文件, 它会停止构建过程并输出错误信息到控制台。为避免这种情况, Maven提供了远程仓库的概念, 它是开发人员自己定制仓库, 包含了所需要的代码库或者其他工程中用到的jar文件。

4.2. 举例说明, 使用下面的pom.xml, Maven将从远程仓库中下载该pom.xml中声明的所依赖的(在中央仓库中获取不到的)文件。

5. 执行Maven构建命令时, Maven开始按照以下顺序查找依赖的库:

5.1. 步骤1: 在本地仓库中搜索, 如果找不到, 执行步骤2, 如果找到了则执行其他操作。

5.2. 步骤2: 在中央仓库中搜索, 如果找不到, 并且有一个或多个远程仓库已经设置, 则执行步骤4, 如果找到了则下载到本地仓库中以备将来引用。

5.3. 步骤3: 如果远程仓库没有被设置, Maven将简单的停滞处理并抛出错误(无法找到依赖的文件)。

5.4. 步骤4: 在一个或多个远程仓库中搜索依赖的文件, 如果找到则下载到本地仓库以备将来引用, 否则Maven将停止处理并抛出错误(无法找到依赖的文件)。

6. Maven引入外部依赖(不在仓库中的jar包)

6.1. 新建一个名为MavenOutDependency的Java项目

6.2. 在MavenOutDependency的Java项目中创建一个名为MvnOutDpy.java的接口

6.3. 右键MavenOutDependency项目——>Export...

6.4. Java——>JAR file

6.5. 选择jar导出的位置——>Finish

6.6. 在MavenWeb工程下, 新建一个lib文件夹, 拷贝MavenOutDependency1.0.0.jar到lib下

6.7. 在pom.xml文件中添加依赖

6.8. 创建CommonDB.java实现MvnOutDpy.java接口

006_Maven仓库相关推荐

  1. 本地打包Docker镜像上传至阿里云远程仓库(一站式脚本)

    打包镜像上传至远程仓库: 1. 本地项目为 mytest-project 2. 仓库为阿里云镜像仓库 registry.cn-beijing.aliyuncs.com/test/mytest-proj ...

  2. Gradle 将项目publish到Nexus,Kotlin将项目发布到nexus,springboot项目发布到maven仓库

    示例见:Gitte 公仓设置 在项目中添加maven-publish的插件 plugins {kotlin("jvm") version "1.3.72"kot ...

  3. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  4. pom文件中引入常用的maven仓库

    给大家分享几个maven仓库,如果本地总是下载很慢的话可以尝试换一下仓库或者多加几个.可以直接拖放在pom.xml中使用. 阿里云仓库 <mirrors><mirror>< ...

  5. 【Docker】registry部署docker私有镜像仓库

    Docker Hub作为Docker默认官方公共镜像仓库,但是如果我们不想使用怎么办,第一我们可以替换默认镜像仓库为我们国内的一些镜像仓库,第二就是如我们自己搭建一个自己的私有镜像仓库,官方也提供do ...

  6. Git 常用操作(6)- 推送到远程仓库(git push)删除远程分支(git push origin --delete)

    1. git remote add--添加远程仓库 在GitHub 上创建的仓库路径为 "git@github.com:用户名/git-tutorial.git".现在我们用git ...

  7. Docker 入门系列(1)- 初识容器,镜像、容器、仓库的区别

    Docker 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发 ...

  8. 在linux(centos7)下本地仓库的搭建

    ----------------本地仓库搭建-------------------------------------------------- mount /dev/sr0 /mnt #挂载 mkd ...

  9. Registry仓库Harbor的部署与简介

    Harbor 是Vmware公司开源的企业级DockerRegistry管理项目,开源项目地址:https://github.com/vmware/harbor.Harbor的所有组件都在Docker ...

最新文章

  1. 计算机组装安装与维护作业,计算机组装与维护的作业.pdf
  2. SQL 语句之insert语句插入数据:若表中有重复的主键或数据继续插入解决方案
  3. python使用redis_python应用中使用redis的几个思考
  4. cad考试题库绘图题答案_证券从业资格考试证券市场基本法律法规题库答案
  5. VS2013常用设置和其他
  6. C++的占位符std::placeholder
  7. Python--itertools包--groupby使用(分类)
  8. html加载gif动画效果,html – 使用CSS动画加载图像VS使用GIF图像加载
  9. NN求解NS方程进一步探讨
  10. 《尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通)》视频1
  11. VC编程使计算机休眠
  12. java项目——CRM客户管理系统(SpringBoot+MyBatis)
  13. java模板beetl引擎,Beetl java模板引擎
  14. 基于VEH调试寄存器实现无痕HOOK(5)
  15. dnf红眼补丁在哪下载_dnf红眼技能变红补丁
  16. 计算机电源 4pin,用电脑电源4PIN接口做的2mm插头插座,省钱方便~
  17. ESP32-C3入门教程 WiFi篇③——WiFi SoftAP 模式开启AP热点
  18. 撤销Excel表格保护
  19. java fx eclipse_JavaFX环境搭建 - Eclipse的e(fx)clipse插件安装 创建JavaFX项目
  20. SLAM十四讲 ch4 Sophus库安装避雷和使用

热门文章

  1. GSM Hacking Part① :使用SDR扫描嗅探GSM网络
  2. 【Node核心模块HTTP】
  3. SVG animation 回顾
  4. js setTimeout()的使用
  5. linux awk命令详解,使用system来内嵌系统命令,批量github,批量批下载视频, awk合并两列...
  6. linux磁盘分区格式化与挂载
  7. ×××安全协议之IPsec
  8. swoole UDP TCP客户端
  9. 树莓派应用实例4:环境温湿度测量(改进)
  10. 达梦数据库中服务器日志的开关