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是一个在Java开发中广泛使用的项目管理和综合工具,它通过一个声明式的配置来管理项目的构建、报告和文档。Maven仓库则是...
### 超全面搭建Maven仓库 Maven是一款强大的项目管理工具,主要用于Java项目的构建、依赖管理和项目信息管理。本文将详细介绍如何搭建Maven环境、配置Maven仓库以及在Eclipse中集成Maven。 #### 一、下载安装Maven...
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仓库
Maven仓库在Java开发中扮演着至关重要的角色,它是一个存储库,用于管理和构建Java项目,包含各种依赖项如JAR文件、源代码、文档等。然而,随着时间的推移,Maven仓库可能会积累大量不再使用的或者过时的依赖,这...
一键清除maven仓库中下载失败的jar包的实现方法 在Maven项目中,下载失败的jar包是一个常见的问题,它们会占用磁盘空间,影响开发效率和心情。因此,清除这些下载失败的jar包变得非常重要。本文将详细介绍如何使用...
详解如何将本地JAR包添加到本地Maven仓库中 有些时候,当我们需要在自己的maven工程中添加一个确定的jar而发现Maven中央仓库不存在时,但是我们自己手上有这些需要的jar包,那么我们可以自给自足,把这个jar包添加到...
阿里云Maven仓库镜像 Maven是Java开发中常用的项目管理工具,可以帮助开发者管理项目的构建、编译、测试、打包和部署。Maven仓库是存储Maven项目依赖项的仓库,用于存储项目需要的jar包和其他依赖项。阿里云Maven...
** Maven仓库清理程序详解 ** Maven仓库是Java开发者在构建项目时不可或缺的一部分,它存储了项目的依赖库,包括JAR文件和其他构建资源。随着时间的推移,Maven仓库可能会积累大量的缓存文件,这些文件可能包括以"....
Maven仓库是Java开发中不可或缺的一部分,它是一个中央存储库,包含了大量的开源项目构件(JAR文件),使得开发者能够方便地管理和下载所需的依赖。Maven通过使用一个统一的配置方式,简化了项目的构建、依赖管理和...
Maven仓库是Java开发中至关重要的一个组成部分,它是一个集中存储各种软件构件(如JAR包)的中央仓库,便于开发者获取、管理和分享依赖。Maven通过配置项目构建的POM.xml文件,能够自动从仓库中下载所需的jar包,极...
1、工具作用:清理本地和远程maven仓库repository中的无效或者垃圾版本文件lastUpdated、_maven.repositories*、_remote.repositories; 2、使用方法1:在本地仓库repository文件夹中右键,打开Git Bahs Here命令...
由于JxBrowser在maven仓库中可能不再可用,对于需要使用此库的开发者来说,直接下载jar包并将其部署到本地或私有Maven仓库是必要的步骤。 首先,我们需要理解Maven仓库的概念。Maven仓库是存储项目依赖的地方,分为...
在Java开发中,Maven仓库是一个至关重要的组成部分,它存储了大量的jar包,这些包包含了各种预编译的类和库,使得开发者无需从零开始构建项目。Maven仓库分为本地仓库、中央仓库和远程仓库,其中"maven-repository...
标题中的“maven仓库中org下的springframework”指的是在Maven的本地或远程仓库中,位于`org`组织下的`springframework`项目。Spring Framework是Java开发中的一个核心框架,由Pivotal Software公司维护,它为构建...
Maven仓库管理-Nexus Maven仓库管理是Maven的核心概念之一,它解决了使用 Ant 时期的 jar 包管理问题。Maven 仓库的初衷是为了解决版本管理的问题,通过 Group Id, Artifact Id, version 来管理 jar 包,实现了依赖...
设置Maven仓库-Artifactory Maven 是 Java 开发者中流行的构建工具,可以帮助减少构建应用程序时所依赖的软件构件的副本。Maven 建议的方法是将所有软件构件存储于一个叫做 repository 的远程仓库中。设置内部 ...
然而,在实际操作中,由于网络问题或依赖冲突,Maven仓库可能会出现下载不完整或者失败的资源,这将导致构建过程受阻。"maven仓库清除工具"正是为了解决这类问题而设计的。 该工具主要用于清理Maven本地仓库中的...
将本地jar包上传到maven仓库,刷新仓库后即可使用