`

maven仓库

阅读更多

1.本地仓库

一般来说,在maven项目目录下,没有诸如lib/这样用来存放依赖文件的目录。当maven在执行编译或测试时,如果需要使用依赖文件,它总是介于坐标使用bending仓库的依赖文件。

默认情况下,不管是Window还是在Linux上,每个用户在自己的用户目录下都有一个路径名为.m2/repository/的仓库目录。注意在linux系统,以点(.)开头的文件或目录默认是隐藏的,可以使用 ls -a 显示隐藏文件或目录。


  中央仓库


  配置如下:

   <repositories>
       <repository>
          <id>central</id>
           <name>Maven Repository Switchboard</name>
            <url>http://repo1.maven.org/maven2</url>
             <layout>default</layout>
             <snaphots>
                <enabled>false</enabled>
             </snaphots>
        </repsository>  
   </repositories>


包含这段配置的文件是所有Maven项目都会继承超级POM,这段配置使用id central 对中央仓库进行唯一标识,其名称为Maven Repository Switchboard,它使用default仓库布局,而snaphots元素,其子元素enaled为false,表示不从该中央仓库下载快照版本的构件。


私服是一种特殊的远程仓库,它是架设在局域网的仓库服务,私服代理广域网的远程仓库,提供域网内的Maven用户使用。

1.节省自己的外网宽带

 2.加速mavne构建

 3.部署第三方构件。

 4.提供稳定性,增强控制。

 5.降低中央仓库的负荷。


远程仓库的配置

   <repositories>
       <repository>
          <id>central</id>
           <name>JBoss Repository</name>
            <url>http://repository.jboss.com/maven2</url>
             <layout>default</layout>
             <snaphots>
                <enabled>false</enabled>
                 <updatePolicy>daily</updatePolicy>
                 <checksumPolicy>ignore</checksumPolicy>
             </snaphots>
              <releases>
                  true
              </releases>
        </repsository>  
   </repositories>


其中release的enabled值为true,表示开启Jboss仓库的发布版本支持,而snapshots的enabled值为false,表示关闭Jboss仓库的快照版本下载的支持。因此
,根据该配置,Maven只会从Jboss仓库下载发布版本的构件,而不会下载快照版本的构件。
 
元素updatePolicy用来配置Maven从远程仓库检查更新的频率,默认的值是daily,表示Maven每天检查一次,其他可用的值包括:never-从不检查更新;always-每次构建都检查更新;inteval:X-每隔X分钟检查一次更新(X为任意整数)

元素checksumPolicy用来配置Maven检查校验和文件的策略。当构件被部署到Maven仓库中时,会同时部署对应的校验和文件。在下载构件的时候,Maven会验证和文件,如果校验和验证失败,当checksumPolicy的值默认的warn时,Maven会执行构建时输出警告信息,其他的可用值包括:fail-Maven遇到校验和错误就让构建失败;ignore-使Maven完全忽略校验和错误。

远程仓库认证

认证配置一般在settings.xml文件中配置,setting.xml文件一般存放在本地。

<servers>
   <server>
    <id>my-proj</id>  ---远程仓库的id
     <username>repo-user</username>  ---认证的用户名
     <password>repo-pwd</password>   ---认证密码
   </server>
</servers>

部署至远程仓库

部署需要在项目中的pom.xml文件配置distributionManagement元素

<distributionManagement>
    <repository>
          <id>pro-releases</id>
           <name>Proj Release Repository</name>
            <url>http://192.168.1.100/content/repositories/pro-releases</url>
        </repsository>

       <snapshotRepository>
            <id>proj-snapshots</id>
             <name>Proj Snapshot Repository</name>
              <url>http://192.168.1.100/content/repositories/proj-snapshots</url>
       </snapshotRepository>
 </distributionManagement>

其中repository为发布的版本构件,snapshotRepository为发布的快照版本构件。

配置正确后,在命定行运行 mvn clean deploy , Maven就会将项目构建输出到构建部署到配置对应的远程仓库。

 


镜像
如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的一个镜像。

配置镜像需要编辑settings.xml文件,代码如下:

<mirrors>
    <mirror>
     <id>maven.net.cn</id>
      <name>one of the central mirrors in China</name>
       <url>http://mavne.net.cn/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
     </mirror>
</mirrors>

该例中http://mavne.net.cn/content/groups/public/为中央仓库的镜像,<mirrorOf>的值为central,表示该配置为中央仓库的镜像,任何对于中央仓库的请求都会转至该镜像,用户也可以使用同样的方法配置其他仓库镜像。

关于镜像的一个更为常见的用法是结合私服。由于私服可以代理任何外部的公告仓库,因此,对于组织内容的Maven用户来说,使用一个私服地址就等于使用了所有需要的外部仓库,这可以将配置集中到私服,从而简化Maven本身的配置。这这种情况下,任何需要构件都可以从私服获得,私服就是所有仓库的镜像。

<mirrors>
    <mirror>
     <id>internal-repository</id>
      <name>Internal Repository Manager</name>
       <url>http://192.168.1.100/maven2</url>
        <mirrorOf>*</mirrorOf>
     </mirror>
</mirrors

该例中的<mirrorOf>的值为星号,表示该配置是所有Maven仓库的镜像,任何对于远程仓库的请求都会被转至这里。

<mirrorOf>external: * </mirrorOf> :  匹配所有远程仓库,使用localhost的除外。使用file://协议的除外。也就是说,匹配所有不在本机上的远程仓库。

<mirrorOf> repo1 repo2 </mirrorOf> : 匹配仓库repo和repo2,使用逗号分隔多个远程仓库。

<mirrorOf> *, ! repo1 </mirrorOf> :匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除。

 

 

下面列举几个maven仓库搜索服务的网站。

 

Sonatype Nexus

 

地址: http://repository.sonatype.org/

Nexus是当前最流行的开发Maven仓库管理软件,Nexus提供了关键字搜索、类名搜索、坐标搜索、校验和搜索等工能。

 

Jarvana

 

地址:http://www.jarvana.com/jarvana

 

jarvana 提供了基于关键字,类名的搜索,构建下载、依赖声明片段等功能。

 

MVNbrowser

 

地址:http://www.mvnbrowser.com

 

MVNbrowser只提供关键字搜索的功能,除了提供基于坐标的依赖声明代码片段等基本工能之外,MVNbrowser的一大特色就是,能够告诉用户该构件的依赖与其他哪些构件,以及该构件被哪些其他构件依赖。

 

MVNrepository

 

地址:http://mvnrepository.com/

 

 

MVNrepository的界面比较清晰,它提供了基于关键字的搜索、依赖声明代码片段、构件下载、依赖与被依赖关系信息、构架所含信息等工能。MVNrepository还能提供一个简单的图表,显示某个构件各版本间大少的变化。

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Maven很Maven仓库

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

    超全面搭建Maven仓库

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

    maven仓库清理命令

    maven仓库清理命令

    settings.xml,本地maven仓库配置

    settings.xml,本地maven仓库配置,注意:D:\maven\repository为我本地的maven仓库路径,改成你的。 settings.xml,本地maven仓库配置,注意:D:\maven\repository为我本地的maven仓库路径,改成你的。 settings.xml...

    nexus 搭建 maven仓库

    nexus 搭建 maven仓库nexus 搭建 maven仓库nexus 搭建 maven仓库nexus 搭建 maven仓库nexus 搭建 maven仓库

    2024版Maven仓库清除工具

    Maven仓库在Java开发中扮演着至关重要的角色,它是一个存储库,用于管理和构建Java项目,包含各种依赖项如JAR文件、源代码、文档等。然而,随着时间的推移,Maven仓库可能会积累大量不再使用的或者过时的依赖,这...

    一键清除maven仓库中下载失败的jar包的实现方法

    一键清除maven仓库中下载失败的jar包的实现方法 在Maven项目中,下载失败的jar包是一个常见的问题,它们会占用磁盘空间,影响开发效率和心情。因此,清除这些下载失败的jar包变得非常重要。本文将详细介绍如何使用...

    详解如何将本地JAR包添加到本地Maven仓库中

    详解如何将本地JAR包添加到本地Maven仓库中 有些时候,当我们需要在自己的maven工程中添加一个确定的jar而发现Maven中央仓库不存在时,但是我们自己手上有这些需要的jar包,那么我们可以自给自足,把这个jar包添加到...

    maven仓库清理程序

    ** Maven仓库清理程序详解 ** Maven仓库是Java开发者在构建项目时不可或缺的一部分,它存储了项目的依赖库,包括JAR文件和其他构建资源。随着时间的推移,Maven仓库可能会积累大量的缓存文件,这些文件可能包括以"....

    Maven仓库链接下载

    Maven仓库是Java开发中不可或缺的一部分,它是一个中央存储库,包含了大量的开源项目构件(JAR文件),使得开发者能够方便地管理和下载所需的依赖。Maven通过使用一个统一的配置方式,简化了项目的构建、依赖管理和...

    maven仓库jar包

    Maven仓库是Java开发中至关重要的一个组成部分,它是一个集中存储各种软件构件(如JAR包)的中央仓库,便于开发者获取、管理和分享依赖。Maven通过配置项目构建的POM.xml文件,能够自动从仓库中下载所需的jar包,极...

    清理本地和远程maven仓库repository中的无效或者垃圾版本文件lastUpdated、_remote等

    1、工具作用:清理本地和远程maven仓库repository中的无效或者垃圾版本文件lastUpdated、_maven.repositories*、_remote.repositories; 2、使用方法1:在本地仓库repository文件夹中右键,打开Git Bahs Here命令...

    JxBrowser开发maven仓库jar包

    由于JxBrowser在maven仓库中可能不再可用,对于需要使用此库的开发者来说,直接下载jar包并将其部署到本地或私有Maven仓库是必要的步骤。 首先,我们需要理解Maven仓库的概念。Maven仓库是存储项目依赖的地方,分为...

    maven仓库 jar包

    在Java开发中,Maven仓库是一个至关重要的组成部分,它存储了大量的jar包,这些包包含了各种预编译的类和库,使得开发者无需从零开始构建项目。Maven仓库分为本地仓库、中央仓库和远程仓库,其中"maven-repository...

    maven仓库中org下的springframework

    标题中的“maven仓库中org下的springframework”指的是在Maven的本地或远程仓库中,位于`org`组织下的`springframework`项目。Spring Framework是Java开发中的一个核心框架,由Pivotal Software公司维护,它为构建...

    Maven仓库管理-Nexus

    Maven仓库管理-Nexus Maven仓库管理是Maven的核心概念之一,它解决了使用 Ant 时期的 jar 包管理问题。Maven 仓库的初衷是为了解决版本管理的问题,通过 Group Id, Artifact Id, version 来管理 jar 包,实现了依赖...

    设置Maven仓库-Artifactory

    设置Maven仓库-Artifactory Maven 是 Java 开发者中流行的构建工具,可以帮助减少构建应用程序时所依赖的软件构件的副本。Maven 建议的方法是将所有软件构件存储于一个叫做 repository 的远程仓库中。设置内部 ...

    maven仓库清除工具.rar

    然而,在实际操作中,由于网络问题或依赖冲突,Maven仓库可能会出现下载不完整或者失败的资源,这将导致构建过程受阻。"maven仓库清除工具"正是为了解决这类问题而设计的。 该工具主要用于清理Maven本地仓库中的...

    将本地jar上传到maven仓库

    将本地jar包上传到maven仓库,刷新仓库后即可使用

    maven仓库清理脚本.zip

    Maven仓库是Maven存储依赖项、插件和其他构建资源的地方。随着时间的推移,这个仓库可能会积累许多不再需要或者下载不完整的文件,这些文件可能会占用大量磁盘空间,甚至可能导致构建问题。"maven仓库清理脚本.zip...

Global site tag (gtag.js) - Google Analytics