坐标和构建是一个构件在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. appium 测试过程中遇到的几个问题 ---持续更新!

    一. appium自带的Chromedriver版本和设备Android System Webview版本不一致的问题 报错信息: io.appium.java_client.NoSuchContex ...

  2. 混合现实开发教程unity2017

    共52节,MP4格式,英字,大小1GB 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主

  3. Huawei BGP和OSPF双边界重分布(一)

    网络拓扑: PS:本例使用明细前缀列表双边界引入 S5700-LSW1 ================================================================ ...

  4. tomcat启动慢

     securerandom.source=file:/dev/./urandom  搜索  /""

  5. Codeforces Round #552 (Div. 3) C题

    题目网址:http://codeforces.com/contest/1154/problem/C 题目意思:小猫吃三种食物,A,B,C,一周吃食物的次序是,A,B,C,A,C,B,A,当小猫该天无食 ...

  6. 解决了好几天的关于django xadmin后台增加链接并执行函数的问题

    由于xadmin后台封装的完整性,想要在后台做一些改动对于新手来说还是有点困难,目前解决的第一个问题: 在admin后台增加链接,使其改变上级签收状态 如图 点击签收按钮之后,改变其状态 代码展示: ...

  7. spring与disruptor集成的简单示例[z]

    [z]https://www.jb51.net/article/135475.htm disruptor不过多介绍了,描述下当前的业务场景,两个应用A,B,应用 A 向应用 B 传递数据 . 数据传送 ...

  8. 内嵌圆角CSS实现

    前言 开发项目时,经常会遇到如上图左上角和右上角这种内嵌的圆角效果,在以前css3还没有普及时不用说一张图片搞定,但是到现在我们完全可以用css去实现. 实现 第一步:思路 仔细观察这个小缺角,它其实 ...

  9. PHP 利用PHPExcel 文件导入(也可保存到本地或者服务器)、导出

    首先需要去官网http://www.php.cn/xiazai/leiku/1491,下载后只需要Classes目录下的文件即可. 1.PHPExcel导出方法实现过程 1 2 3 4 5 6 7 8 ...

  10. 涂色(CQOI2007)

    --BZOJ1260_区间dp Description 假设你有一条长度为5的木版,初始时没有涂过任何颜色.你希望把它的5个单位长度分别涂上红.绿.蓝.绿.红色,用一个长度为5的字符串表示这个目标:R ...