阳阳得意7825

导航

Maven4-仓库

坐标和构建是一个构件在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将会将项目构建输出的构建部署到配置对应的远程仓库

快照版本

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

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

posted on 2018-03-01 16:13  阳阳得意7825  阅读(172)  评论(0编辑  收藏  举报