`
m635674608
  • 浏览: 5003001 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Maven 仓库、镜像

 
阅读更多

1、仓库中jar包定位

    在maven世界中任何一个依赖、插件或者项目构建的输出都可以称为构件,任何一个构件都有一个坐标作为唯一的标识。

这个坐标就是:group、artifactId、version;根据这个坐标就可以定义其在仓库的唯一存储路径,那么就可以在项目中引用。

 

    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>

 

2、Maven仓库原理

    Maven仓库是基于简单文件系统存储的,只要在文件系统中没有发现相关的文件,说明这几依赖并不存在,因此,我们很容易在本地仓库查找具体的依赖是否存在。

 

3、仓库的分类信息(本地仓库、远程仓库)

    1)本地仓库就是我们自己机器上的文件系统,所以他是唯一的,项目构建时首先在本地仓库查找依赖,如果本地没有依赖时才会去寻找远程仓库。

    2)远程仓库指的是非本地的其他所有仓库,中央仓库、私服等都是远程仓库的一种。如果本地仓库没有项目构建需要的构件,你们就会从远程仓库下载,可是远程仓库如果也没有的话,你们就会项目报错。

 

4、本地仓库设置

<localRepository>D:\Program Files\apache-maven-3.2.2-repository</localRepository>

安装的时候有个一conf/settings.xml文件,这个文件时全局控制文件,另外,还有一个就是C:\Users\Heweipo\.m2 下面也会有一个settings.xml文件,这个代表的是个人局部配置文件,然而,我们使用Eclipse默认采用这个settings.xml文件,可以通过如下截图修改:

 

5、中央仓库

    Maven必须知道至少一个可用的远程仓库,才能执行Maven命令的时候下载到需要的构件。中央仓库就是这样一个默认的远程仓库,Maven安装文件自带远程仓库的位置是

    http://repo.maven.apache.org/maven2

具体中央仓库在settings.xml文件的配置如下:

    <repositories>
           <repository>
                     <id>central</id>
                     <name>Central Repository</name>          
                     <url>http://repo.maven.apache.org/maven2</url>          
                     <layout>default</layout>          
                     <snapshots>
                         <enabled>true</enabled>
                         <updatePolicy>always</updatePolicy>
                         <checksumPolicy>always</checksumPolicy>
                     </snapshots> 
            </repository> 
    </repositories>

 

6、私服

    私服是一种特殊的远程仓库,他是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在改构件,则从外部的远程仓库下载,同时缓存在私服之上,然后为Maven下载请求提供服务,另外,对于第三方的jar无法从仓库下载(JDBC驱动)可以从本地上传到私服供客户端下载。

    优点主要有:

    1)节省外网宽带

    2)加速Maven构建

    3)部署第三方构件

    4)提高稳定性、增强控制:原因是外网不稳定

    5)降低中央仓库的负荷:原因是中央仓库访问量太大

7、远程仓库认证

    有时候登录一个远程仓库需要用户名和密码进行身份验证,所以,需要远程仓库认证。配置认证信息和配置仓库信息不同,仓库信息可以直接配置POM文件中,但是认证信息必须配置在settings.xml文件中,目的就是安全性。当然,我们可以把仓库信息配置在settings.xml 中,这样的缺点就是好动态控制仓库,但是一般情况下不会改变仓库,我们本地私服一般都是唯一的。

   <server>
      <id>deploymentRepo_releases</id>
      <username>repouser</username>
      <password>repopwd</password>
    </server>

值得注意的是,ID代表的是某个repository元素配置的ID。

 

8、远程仓库部署

 <distributionManagement>
    <repository>
        <id>deploymentRepo_releases</id>
        <name>Nexus Release Repository</name>
        <url>http://localhost:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>deploymentRepo_snapshots</id>
        <name>Nexus Snapshot Repository</name>
        <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

我们开发的版本可以通过 mvn deploy 把项目部署到对应的私服上去对于为什么要把发行版本和快照版本分开主要还是为了方便后期项目维护和当时的协同开发。比如发行版本肯定是稳定版,但是他的功能可能没有那么多,对于一些要求稳定的客户就可以给他发行版本;可是对于快照版本来说,是一个正在开发的版本,这个版本可能随时都会被另外一个项目依赖,如果他需要我的功能我就会进行代码提交,也就是部署到私服上去,然而,这个时候Maven就会把我的快照版本做一个时间戳添加在快照版本之后,别人依赖的快照版本也会自动更新为最新的快照版本,这些都是Maven帮我们完成,我们只要项目提交就好。

 

9、镜像

    如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像,某些情况下使用镜像可以提高项目构建效率。

    settings.xml 中配置镜像

  <mirrors>

    <mirror>
      <id>mirrorId</id>
      <mirrorOf>repositoryId</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>

  </mirrors>

镜像的意思是,当你访问mirrorOf的仓库时,就会转到对应的镜像url中请求对应的资源。一般镜像都是和私服结合使用。由于私服可以代理任何外部的公共仓库(包括中央仓库),因此,对于组织内部的Maven用户来说,使用一个私服地址就等于使用了所有需要的外部仓库,这个可以将配置集中到私服,从而简化Maven本身的配置。在这种情况下,任何需要的构件都可以从私服中获得,私服就是所有仓库的镜像。这猴子那个镜像如下配置:

  <mirrors>

    <mirror>
      <id>mirrorId</id>
      <mirrorOf>*</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>http://my.repository.com/repo/path</url>
    </mirror>

  </mirrors>

 

10 仓库中jar包搜索

   1)仓库搜索:

   2)中央仓库

    http://repo1.maven.org/maven2/

    http://repository.jboss.com/maven2/

    http://repository.sonatype.org/content/groups/public/

 

 

http://m.oschina.net/blog/480244

分享到:
评论

相关推荐

    阿里云Maven仓库镜像.docx

    阿里云Maven仓库镜像 Maven是Java开发中常用的项目管理工具,可以帮助开发者管理项目的构建、编译、测试、打包和部署。Maven仓库是存储Maven项目依赖项的仓库,用于存储项目需要的jar包和其他依赖项。阿里云Maven...

    Maven仓库镜像源.txt

    ### Maven仓库镜像源知识点详解 #### 一、Maven简介与作用 Maven是Apache组织下的一个开源项目,它是一种规范化的项目构建工具,主要用于Java项目的构建与管理。Maven通过一系列生命周期(如clean、compile等)、...

    maven文件仓库镜像

    例如,阿里云、网易等公司提供了国内的Maven仓库镜像服务,它们同步中央仓库的最新内容,使得开发者可以快速获取所需的依赖。 配置Maven仓库镜像主要涉及修改`settings.xml`文件。在这个文件中,可以通过`mirrors`...

    Maven仓库镜像配置文件

    Maven仓库阿里巴巴镜像配置文件

    maven国内镜像配置的方法步骤

    maven国内镜像配置的方法步骤 Maven国内镜像配置是指在Maven项目中配置国内镜像服务器,以解决官方库连接不上的问题。本文将详细介绍Maven国内镜像配置的方法步骤。 Maven是当前流行的项目管理工具,但官方的库在...

    apache-maven-3.6.3 阿里镜像

    阿里镜像是阿里云提供的Maven仓库镜像服务,它与官方Maven中央仓库同步,但位于中国的服务器上,可以显著提高国内开发者获取Maven依赖的速度。要使用阿里镜像,需要在Maven的配置文件`settings.xml`中添加或修改镜像...

    maven配置阿里云镜像仓库

    maven配置阿里云镜像仓库,maven配置阿里云镜像仓库,maven配置阿里云镜像仓库。

    阿里云maven镜像服务器配置文件

    阿里云maven镜像服务器配置文件,描述摘要还必须大于50个字节,还一定需要资源分,就不能免费吗?

    maven配置文件配置国内阿里云镜像

    maven配置文件配置国内阿里云镜像

    maven-3.6.0已配好国内镜像地址

    本资源提供的“maven-3.6.0”已经配置好了国内镜像地址,这对于中国的开发者来说尤其重要,因为通过国内镜像可以快速地下载到Maven仓库中的依赖库,避免了因网络问题导致的构建延迟。 在Maven中,配置国内镜像是...

    maven库的镜像

    在这个例子中,我们定义了一个名为"aliyun-maven"的镜像,它指向了阿里云提供的公共Maven仓库。`*&lt;/mirrorOf&gt;`表示这个镜像将作为所有未指定镜像的默认选择。 除了阿里云,还有许多其他的公共Maven镜像,如豆瓣...

    maven国内(阿里)镜像

    在这个配置中,`&lt;id&gt;`是镜像的标识符,`&lt;name&gt;`是镜像的名称,`&lt;url&gt;`是阿里云Maven镜像的地址,`*&lt;/mirrorOf&gt;`表示所有仓库的请求都将映射到此镜像上。 除了阿里云,还有一些其他的国内镜像提供者,如清华大学的...

    Maven 3.6.3文件 setting文件已替换华为云maven镜像

    当你提到“Maven 3.6.3文件setting文件已替换华为云maven镜像”,这意味着开发者已经将默认的Maven中央仓库替换为华为云提供的Maven镜像服务。 使用华为云Maven镜像的主要好处有以下几点: 1. **速度优化**:华...

    maven镜像仓库配置

    Maven镜像仓库配置是开发者在使用Maven构建Java项目时,为了提高下载依赖速度和解决因网络问题导致的依赖下载失败而采取的一种策略。Maven的默认仓库是中央仓库,位于国外,对于国内用户来说,访问速度可能较慢。...

    Android-JarsCrawler爬取阿里maven中央仓库的所有jar包

    这样,我们就可以在本地构建一个完整的Maven仓库镜像,供开发和研究使用。 使用JarsCrawler时,我们需要先克隆或下载提供的`JarsCrawler-master`压缩包,解压后找到源代码。这个项目通常包含以下几个关键部分: 1....

    Maven配置阿里云镜像settings.xml文件

    在安装Maven构建工具后,Maven仓库镜像站点默认是国外的,因为网络原因,在构建项目时下载依赖文件会很慢,甚至有可能下载失败。所以我们一定要把仓库镜像站点改为国内的才能顺利下载,通常比较常用得是阿里云镜像,...

    apache maven 3.5.0 已配置阿里源镜像

    "已配置阿里源镜像"意味着开发者已经将Maven的默认中央仓库替换为阿里的镜像仓库。阿里云提供了对Maven中央仓库的高速镜像服务,这极大地加快了中国地区开发者的jar包下载速度。由于中国的网络环境,访问国外的中央...

    多镜像maven仓库配置文件

    多镜像maven仓库配置文件,实测可用,下载后修改节点路径即可使用

    Maven很Maven仓库

    【Maven很Maven仓库】这个标题暗示了讨论的核心是关于Maven以及它与Maven仓库的关系。Maven是一个在Java开发中广泛使用的项目管理和综合工具,它通过一个声明式的配置来管理项目的构建、报告和文档。Maven仓库则是...

    超全面搭建Maven仓库

    ### 超全面搭建Maven仓库 Maven是一款强大的项目管理工具,主要用于Java项目的构建、依赖管理和项目信息管理。本文将详细介绍如何搭建Maven环境、配置Maven仓库以及在Eclipse中集成Maven。 #### 一、下载安装Maven...

Global site tag (gtag.js) - Google Analytics