• 6.1什么是Maven仓库?

    • Maven仓库:存储所有Maven项目共享的构件的统一位置。
    • Maven仓库的作用:Maven项目仅需声明依赖坐标,即可在需要的时候自动根据坐标找到仓库中的构件。
  • 6.2仓库的布局
    • Maven仓库布局方式:根据构件的唯一的坐标,可以确定其在仓库中的唯一存储路径。
    • 示例:构件groupId=org.testng、artifactId=testng、version=5.8、classifier=jdk15、packaging=jar
      • 1)使用groupId:org.testng对应路径org/testng/
      • 2)使用artifactId:testng对应路径为testng,总路径为/org/testng/testng
      • 3)使用version:5.8对应路径为5.8,总路径为org/testng/testng/5.8
      • 4)使用artifactId和version创建jar包前缀:jar包前缀为testng-5.8,总路径为org/testng/testng/5.8/testng-5.8
      • 5)如果有classifier,使用classifier:jar包文件名变为testng-5.8-jdk5,总路径为org/testng/testng/5.8/testng-5.8-jdk5
      • 6)使用packaging:总路径为org/testng/testng/5.8/testng-5.8-jdk5.jar
      • 因此,构建存在org/testng/testng/5.8/testng-5.8-jdk5.jar路径下
    • 问题排查:当无法获得声明的依赖时,可检查在仓库中是否存在
  • 6.3仓库的分类
    • Maven仓库分类

      • 本地仓库
      • 远程仓库
        • 中央仓库
        • 私服
        • 其他公共库
    • 构件搜索规则:
      • 1)查找本地仓库
      • 2)本地仓库找不到,查找远程仓库
      • 3)都找不到,报错
    • 6.3.1本地仓库
      • Linux默认地址:用户目录下home/username/.m2/repository/
      • 如何修改本地仓库地址?修改~/.m2/settings.xml
      • 安装构件到本地仓库:mvn clean install
    • 6.3.2远程仓库
    • 6.3.3中央仓库
      • 默认的远程仓库,Maven自带中央仓库配置

        • id:仓库的唯一标识,中央仓库为central
        • layout:默认仓库布局,即6.2中介绍的布局
        • snaoshots:为false,表示不从改仓库下载快照版本的构件
    • 6.3.4私服
      • 私服:架设在局域网内的仓库服务,私服【代理】广域网上的远程仓库,供局域网内的Maven用户使用

      • 构件下载规则:
        • 1)当需要下载构件时,先从私服请求
        • 2)如果私服上找不到,从外部远程仓库下载,缓存在私服
        • 3)私服提供构件下载服务
      • 私服好处:
        • 1)节省自己外网带宽
        • 2)加速Maven构建
        • 3)部署第三方构件。
        • 4)提供稳定性,增强控制。因无需访问Internet,克服网络不稳定问题。
        • 5)克服中央仓库负荷。
  • 6.4远程仓库的配置
    • 示例:添加JBoss Maven仓库为远程仓库

    • id:任何一个仓库的di必须是唯一的!maven自带中央仓库id为central,如果别的仓库声明id为central,则自带中央仓库会被覆盖!
    • releases:enabled为true,表示会下载release版本的构件
    • snapshots:enabled为false,表示不会下载SNAPSHOT版本的构件
    • 6.4.1远程仓库认证
      • 远程仓库认证:需要用户名密码才能访问远程仓库
      • 示例:配置settings.xml,配置id为my-proj仓库的认证信息。注意:id必须与POM中需要认证的repository中的仓库id完全一样。
    • 6.4.2部署至远程仓库
      • 示例:编辑项目的pom.xml,配置构件部署地址

      • repository:发布release版本构件的仓库
      • snapshotRepository:发布SNAPSHOT版本的仓库
      • 发布命令:mvn clean deploy
  • 6.5 快照版本
    • 建议:快照版本不稳定,不应该依赖任何外部的快照版本依赖
  • 6.6 从仓库解析依赖的机制
  • 6.7镜像
  • 6.8仓库搜索服务

【读书笔记】《Maven实战》第6章 仓库的更多相关文章

  1. 学习笔记-[Maven实战]-第三章:Maven使用入门(1)

    说明:[Maven实战]一书还介绍了怎么样手工创建Maven工程,学习这本书是为了能尽快在工作中使用,就忽略了手工建工程的部分 如果想了解这部分的内容,可以自己看看书 开始: 1.新建一个maven工 ...

  2. 学习笔记-[Maven实战]-第三章:Maven使用入门(3)

    这里说一下在建测试工程里遇到的问题 1.第一次建工程,junit依赖始终没有成功,最后删除现在工程,新建了一个工程就好了 2.使用junit4的问题.工程默认的依赖是junit3.8.1,我改成了4. ...

  3. 学习笔记-[Maven实战]-第三章:Maven使用入门(2)

    使用maven执行编译和测试 1.maven执行编译 (1).在pom.xml上点右键,选择Maven build... (2).在Goals里输入clean complie,执行编译 执行结果: [ ...

  4. AngularJS in Action读书笔记6(实战篇)——bug hunting

    这一系列文章感觉写的不好,思维跨度很大,原本是由于与<Angularjs in action>有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的时候还是会心有余而力不足,零零总 ...

  5. 学习笔记——Maven实战(四)基于Maven的持续集成实践

    Martin的<持续集成> 相信很多读者和我一样,最早接触到持续集成的概念是来自Martin的著名文章<持续集成>,该文最早发布于2000年9月,之后在2006年进行了一次修订 ...

  6. [Maven实战](6)仓库(本地仓库,远程仓库,镜像)

    1. 简单介绍 maven能够在某个位置统一存储全部maven项目共享的构件,这个统一的位置就是仓库.实际的Maven项目将不会各自存储其依赖文件,它们仅仅须要声明这些依赖的坐标,在须要的时候(比如. ...

  7. 学习笔记——Maven实战(六)Gradle,构建工具的未来?

    Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你就会发现曾经大红大紫的技术已经成为了昨日黄花,当然,Maven也不会例外.虽然目前它基本上是Java构建的事实标准,但我们 ...

  8. 学习笔记——Maven实战(七)常用Maven插件介绍(上)

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的.进一步说,每个任务对应了 ...

  9. 学习笔记——Maven实战(八)常用Maven插件介绍(下)

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...

  10. Unity Shader入门精要读书笔记(一)序章

    本系列的博文是笔者读<Unity Shader入门精要>的读书笔记,这本书的章节框架是: 第一章:着手准备. 第二章:GPU流水线. 第三章:Shader基本语法. 第四章:Shader数 ...

随机推荐

  1. ibm云时代的转型

    好几个月了,有两个说法很流行. 第一个说法,是老有人嚷嚷思科快被SDN整趴下了:第二个说法,是老有人嚷嚷IBM在云计算时代完全落后了,要倒下了. 刚开始我还跟有些人辩论: 1.裁员是西方企业常用的战略 ...

  2. 巨高兴,偶的文章 “如何在服务器上配置ODBC来访问本机DB2for Windows服务器”被推荐至CSDN博客首页

    非常高兴,偶的文章 "如何在服务器上配置ODBC来访问本机DB2for Windows服务器"被推荐至CSDN博客首页,截图留念.                  文章被推荐在C ...

  3. Android布局优化:include 、merge、ViewStub的详细总结

    版权声明:本文出自汪磊的博客,未经作者允许禁止转载. 本篇博客主要是对上篇博客的补充Android性能优化之UI渲染性能优化, 没有什么新东西,觉得应该是都掌握的玩意,写出来也只是自己做个小小的总结. ...

  4. css选择器应用

    .mynav li:not(:last-child) { margin-right: 20px; }

  5. SPRING事务的属性有哪些?其中,事务隔离级别有哪几种?什么情况需要使用这几种事务隔离级别?

    Spring 声明式事务,propagation属性列表  PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择.  PROPAGATION_SU ...

  6. (转)go rabbitmq实践

    转载自:http://www.cnblogs.com/shi-meng/p/4800080.html 1:驱动 本来打算自己写一个驱动的,后来发现github上面已经有了,那我就直接拿现成的了, 驱动 ...

  7. SQL Server复制表结构和表数据生成新表的语句

    参考:http://topic.csdn.net/t/20020621/09/820025.html SELECT   *   INTO   newTableName   FROM   oldTabl ...

  8. codeforces——961A Tetris

    本文是博主原创文章,未经允许不得转载. 我在csdn上也同步发布了此文,链接 https://blog.csdn.net/umbrellalalalala/article/details/798915 ...

  9. Ubuntu16.04下安装Hive

    上一篇博客我们已经说过了要如何安装Hadoop,别忘记了我们的目的是安装Hive.所以这篇博客,我就来介绍一下如何安装Hive. 一.环境准备 (1)Vmware (2)  Ubuntu 16.04 ...

  10. AUTOSAR-关于配置文件的思考

    基于Can: 1. Can_Cfg.h contains compile time configurations. It should be included by Can.h which is sp ...