• 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. 恶补web之一:html学习(1)

    发现以前欠下的web知识太多鸟,只有重头开始好好学吧,恶补第一站就是html知识啦! html指的是超文本标记语言,它不是编程语言,而是一种标记语言;标记语言是一套标记标签(markup tag),h ...

  2. C# 创建Word项目标号列表、多级编号列表

    在Word文档中,对于有多条并列的信息内容或者段落时,我们常以添加项目标号的形式来使文档条理化,在阅读时,文档也更具美观性.另外,对于在逻辑上存在一定层级结构的内容时,也可以通过多级编号列表来标明文档 ...

  3. mysql之数据库的增删改查

    一.DDL 1.创建数据库 create database 数据库名 *数据库名不能中文, 不能数字正常英文 , 关键字会自动变大写 2.删除数据库 drop database 数据库名 3.使用数据 ...

  4. 运行ant脚本(转载)

    http://blog.csdn.net/linwei_1029/article/details/5809801 运行ANT脚本的步骤 1.右击我的电脑-->属性-->高级-->环境 ...

  5. maven技术(一)软件安装与配置

    maven技术在研发的过程中,作为资源依赖管理非常出色,例如在Java项目开发过程中,需要各种各样jar包,一般情况下开发者会直接将所用到的jar包放在project的lib目录下,提供自己程序调用. ...

  6. JavaScript四(DOM编程)

    一.绪论 DOM是文档对象模型(Document Object Module)的简称,借助DOM模型,可以将结构化文档,转换成DOM树,程序可以访问,修改,增加,删除树的节点.程序通过操作DOM树时, ...

  7. Android Gradle 自定义Task 详解

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/76408024 本文出自[赵彦军的博客] 一:Gradle 是什么 Gradle是一 ...

  8. Java对象和Excel转换工具XXL-EXCEL

    <Java对象和Excel转换工具XXL-EXCEL> 一.简介 1.1 概述 XXL-EXCEL 是一个灵活的Java对象和Excel文档相互转换的工具. 一行代码完成Java对象和Ex ...

  9. 如何在ES5与ES6环境下处理函数默认参数

    函数默认值是一个很提高鲁棒性的东西(就是让程序更健壮)MDN关于函数默认参数的描述:函数默认参数允许在没有值或undefined被传入时使用默认形参. ES5 使用逻辑或||来实现 众所周知,在ES5 ...

  10. java.IO层次体系结构

    在整个Java.io包中最重要的就是5个类和一个接口.5个类指的是File.OutputStream.InputStream.Writer.Reader:一个接口指的是Serializable.掌握了 ...