坐标和构建是一个构件在Maven世界中的逻辑表示方式,而其物理表示方式是文件。
Maven通过仓库来统一管理这些文件

什么是Maven仓库?

在Maven世界中,任何一个依赖,插件或者项目构建的输出,都可以称为构建,任何一个构建都有一组坐标唯一标识。
得益于坐标机制,任何Maven项目使用任何一个构件的方式都是完全相同的,在此基础上,Maven可以在某个位置统一存储所有Maven项目共享的构件,这个统一的位置就是仓库.
这样Maven项目就可以不再各自存储其依赖文件,只需要声明这些依赖的坐标,在需要的时候,Maven会自动根据坐标找到仓库中的构件并使用。

仓库的分类

对于Maven来说,仓库分为两类:本地仓库和远程仓库
使用顺序为,先查找本地仓库,若不存在或要寻找更高的版本,则到远程仓库中寻找到后,下载到本地仓库再使用,如果都没有,则报错

本地仓库

一般情况下,在Maven项目目录下,没有诸如lib/这样用来存放依赖文件的目录。
当Maven在执行编译或测试时,如果需要使用依赖文件,它总是基于坐标使用本地仓库的依赖文件
一般情况下,每个用户在自己的用户目录下都有一个路径名为.m2/repository/的仓库目录

远程仓库

远程仓库有很多:

  • 中央仓库:默认的远程仓库,Maven的安装文件自带了中央仓库的配置,包含了这个世界上绝大多数流行的开源Java构件
  • 私服:一种特殊的远程仓库,架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用

远程仓库的那些事

远程仓库的配置
<project>
...
<repositories>
<repository>
<id>jboss</id>
<name>JBoss Repository</name>
<url>http://repository.jboss.com/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>daily</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
<layout>default</layout>
</repository>
</repositories>
</project>
  • updatePolicy 用来配置Maven从远程仓库检查更新的频率
  • checksumPolicy 用来配置Maven检查检验和文件的策略

远程仓库的认证

大部分远程仓库无须认证就可以访问,但有时处于安全方面的考虑,需要提供一些认证信息才能访问一些远程仓库。
配置认证信息应该在settings.xml中,而不是POM中(因为settings.xml一般只放在本机中)

<settings>
...
<servers>
<server>
<id>my-proj</id>
<username>repo-user</username>
<password>repo-pwd</password>
</server>
</servers>
</settings>

这里的id需要和pom中的id相同

部署至远程仓库

<project>
...
<distributionManagement>
<repository>
<id>proj-release</id>
<name>Proj Release Repository</name>
<url>http://192.168.1.100/content/repositories/proj-releases</url>
</repository>
<snapshotRepository>
<id>proj-snapshots</id>
        <name>Proj Snapshots Repository</name>
<url>http://192.168.1.100/content/repositories/proj-snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>

然后执行mvn clean deploy,Maven将会将项目构建输出的构建部署到配置对应的远程仓库

快照版本

快照版本对应了大量的带有不同时间戳的构建。

快照版本只应该在组织内部的项目或模块间依赖使用

Maven4-仓库的更多相关文章

  1. 本地maven仓库使用及配置

    本地仓库的创建 下载 nexus-2.11.4-01-bundle.zip 解压并运行C:\nexus-2.11.4-01-bundle\nexus-2.11.4-01\bin\jsw\windows ...

  2. idea初使用之配置使用maven仓库

    idea使用的理由已经无需多说.现在已经超过了eclipse.java开发种占有44%.第一次使用上手还是挺难的.跟用惯了myeclipse的我来说.对于project的概念深入人心.还理解不了它的M ...

  3. maven 仓库搜索添加需要的jar包

    可用仓库网址: http://search.maven.org/#browse http://mvnrepository.com/ http://repository.sonatype.org/ind ...

  4. Maven如何手动添加依赖的jar文件到本地Maven仓库

    大家肯定遇到过想在pom文件中加入自己开发的依赖包,这些包肯定是不是在Maven仓库(http://repo1.maven.org/maven2/)的.那我们怎么将那些不存在Maven仓库中的包加入到 ...

  5. 拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建

    使用.创造和分享 笔者曾经不思量力的思考过『是什么推动了互联网技术的快速发展?』这种伟大的命题.结论是,除了摩尔定律之外,技术经验的快速积累和广泛分享,也是重要的原因. 有人戏称,『写 Java,首先 ...

  6. nexus建立maven仓库私服及Snapshots、release的版本管理

    环境搭建   1.linux安装maven   wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.0.5/binaries/apache-mave ...

  7. Maven如何手动添加jar包到本地Maven仓库

    Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供.基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构 ...

  8. Maven手动增加依赖jar到本地Maven仓库中

    Apache Maven是一个项目管理及自动构建工具,有APache软件基金会提供.我们只要配置成功后就可以通过配置pom.xml添加所需依赖的jar包和类库,因为这些类库已经在我们配置的Maven仓 ...

  9. 手动将jar添加到maven仓库中

     1.将jar放到E:\workspace\lib中.如下图: 2.编写pom.xml文件,定义jfinal的坐标. <project xmlns="http://maven.ap ...

  10. [转]Maven如何手动添加jar包到本地Maven仓库

     Apache Maven,是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供.基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项 ...

随机推荐

  1. atom使用技巧

    文本 批量处理 正则 空格换成换行:Atom替换换行符直接[Ctrl]+[F],然后选择正则,输入\n

  2. webpack4.0

    1. webpack 刚开始是js的模块打包,现在是一个任何模块打包工具  可以识别 CommonJS引入规范     CMD AMD 2. commonJS:  module.exports   r ...

  3. python添加post请求

    1.进入python的安装目录下的Scripts目录 ,利用pip install requests安装第三方模块 2.火狐浏览器自带firebug,打开http://10.148.111.111/q ...

  4. ELT(数据仓库技术) 学习

    ETL工具比较: https://blog.csdn.net/wjandy0211/article/details/78611801 ETL之kettle使用总结:(批量.含常量)csv入库: htt ...

  5. 一篇文章说清楚mysql索引

    索引是什么? 索引是为了加速对表中数据行的检索而创建的一种分散的数据存储结构 为什么要使用索引? 索引能极大的减少数据存储引擎需要需要扫描的数据量: 索引能够把随机IO变为数序IO: 索引能够帮助我们 ...

  6. How to change system keyboard keymap layout on CentOS 7 Linux

    The easiest way to swap between keymaps and thus temporarily set keys to different language by use o ...

  7. SSH 免密码登陆到多台机器

    场景: 需要从主机1.100免密码多了到1.115及1.116 实现: 登陆1.100 $ cd ~/.ssh/ $ ssh-keygen -t rsa 然后三个回车 会有两个文件产生,id_rsa ...

  8. 将EditPad Lite 加入鼠标右键

    > 开始 > regedit 如图新建shell及command

  9. rn最新版测试

    1.使用软件版本rn-4.20.4.zipdrago-4.22.03 2.启动drago选择菜单‘对弈’ -> ‘对弈引擎设置’,点按钮‘添加’,选择‘已安装’,输入:姓名‘rn-4.20.4’ ...

  10. python 字典 拼接SQL语句

    def gen_sql(table_name, data):  """ :param table_name: 表名称 :param data: 字典对象 key为字段(要 ...