• 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实战](6)仓库(本地仓库,远程仓库,镜像)

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

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

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

  3. 《Maven实战》笔记-3-Maven仓库

    一.Maven仓库的分类 1.本地仓库 一般来说,在Maven项目目录下,没有诸如lib/这样用来存放依赖文件的目录. 要自定义本地仓库目录地址时,可以编辑文件~/.m2/setting.xml,设置 ...

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

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

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

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

  6. Maven实战(九)Maven仓库简介

    目录 一.作用 Maven仓库分为本地仓库和远程仓库,集中存放项目引用的jar包,无需将jar包放在程序中,结合Maven项目的pom.xml,使得项目管理jar包更容易,有以下几个优点: 对于项目来 ...

  7. maven实战(1)-- maven仓库

    maven仓库配置 转自:http://blog.csdn.net/dongnan591172113/article/details/7685164 1.两类仓库 1.1本地仓库(local repo ...

  8. [Maven实战-许晓斌]-[第二章]-2.3安装目录分析

    bin boot conf settings.xml非常重要 这个是maven安装包自带的settings.xml 通常我们会放在习惯路径,C:\Users\admin\.m2\下面 即  用户路径\ ...

  9. [Maven实战-许晓斌]-[第二章]-2.1在Windows上安装maven

    来源:<maven实战>   1.检查JAVA_HOME和java -version C:\Users\admin>echo %JAVA_HOME% C:\Users\admin&g ...

  10. 《maven实战》笔记(4)----maven的仓库

    maven的构件表示方式是文件,maven通过仓库来统一管理这些文件. maven仓库的布局方式: 任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径 仓库分为两类:本地仓库和 ...

随机推荐

  1. AtCoder Tak and Hotels

    题目链接:传送门 题目大意:有 n 个点排成一条直线,每次行动可以移动不超过 L 的距离,每次行动完成必须停在点上, 数据保证有解,有 m 组询问,问从 x 到 y 最少需要几次行动? 题目思路:倍增 ...

  2. AngularJS 讲解,三 过滤器

    过滤器用来格式化需要展示给用户的数据.AngularJS有很多实用的内置过滤器,同时也提供了方便的途径可以自己创建过滤器. 在HTML中的模板绑定符号{{ }}内通过|符号来调用过滤器.例如:{{va ...

  3. CKEDITOR 4.6.X 版本 插件 弹出对话框 Dialog中 表格 Table 自定义样式Style 问题

    项目开发过程中,发现CKEDITOR 插件的弹出框 内 如果跟据项目需要写表格(table tr td),表格的边框等属性会被 CKEDITOR的清除或覆盖,导致表格很难看. 问题关键: 插件弹出框d ...

  4. iOS 百度地图获取当前地理位置

    // // ViewController.m // BaiDuDemo // // Created by Chocolate. on 15-3-2. // Copyright (c) 2015年 re ...

  5. [hihoCoder] KMP算法

    Each time we find a match, increase the global counter by 1. For KMP, algorithm, you may refer to th ...

  6. 广药帅气外教~看妹纸如何HOLD住

    看他吉他弹的好,看来我要努力练习我的吉他了,一个月了没有任何长进啊. shit~!

  7. ubuntu16.04搭建jdk1.8运行环境

    搭建环境:Ubuntu 16.04 ×64 JDK :jdk-8u171-linux-x64.tar.gz 首先下载linux对应的安装包下载地址:http://www.oracle.com/tech ...

  8. 【Python之路】第十八篇--MySQL(一)

    一.概述 1.什么是数据库 ? 答:数据的仓库. 2.什么是 MySQL.Oracle.SQLite.Access.MS SQL Server等 ? 答:他们均是一个软件,都有两个主要的功能: a. ...

  9. 码云平台, Git提交需要输入用户名/密码, 怎么办

    这是因为, 检出代码的时候, 使用了http的方式: 那么, 改为ssh的地址就行了

  10. Line---CodeForces 7C(扩展欧几里得算法)

    题目链接:http://codeforces.com/problemset/problem/7/C AX+BY=C已知 A B C 求 X Y: #include <iostream> # ...