4.Maven仓库

时间:2023-03-10 00:46:03
4.Maven仓库

1. 何为Maven仓库

Maven仓库就是统一存放所有依赖的地方,其他所有项目都可以在仓库里通过坐标找到所需要的依赖。

2. 仓库的布局

任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径,这便是Maven仓库布局方式。例如,log4j:log4j:1.2.15这一依赖,其对应的仓库路径为log4j/log4j/1.2.15/log4j-1.2.15.jar。该路径与坐标的大致对应关系为groupId/artifactId/version/artifactId-version.packaging

3.仓库的分类

对Maven来说,仓库只分为两类:本地仓库和远程仓库。当Maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构建,则直接使用。如果不存在,Maven就会去远程仓库查找,发现需要的构建之后,下载到本地仓库使用。

3.1 本地仓库

一般情况下,无论是在Windows还是Linux,Maven本地仓库的地址是在用户目录下的.m2/repository里。

其中在.m2文件夹中有一个setting.xml配置文件,通过这个文件可以改变一些仓库的设置。默认情况下settings.xml文件并不存在,用户需要从Maven安装目录复制$M2_HOME/conf/settings.xml文件再进行编辑。

全局范围的配置文件

全局目录的settings.xml文件指的是$M2_HOME/conf/settings.xml文件,修改这个文件,整台机器上的所有用户都会直接受到影响。

用户范围的配置文件

而~/.m2/settings.xml文件是用户范围的,只有当前用户才会受到该配置的影响。建议修改~/.m2/settings.xml文件,避免自己的修改影响到系统中的其他用户。

改变本地仓库的目录地址

编辑settings.xml文件,设置localRepository元素为想要的仓库地址,如:

<settings>
    <localRepository>D:\jva\repository\</localRepository>
</settings>

将构件安装到本地仓库

在某个项目中执行mvn clean install命令就可以将该项目安装到本地仓库。在命令行可以看到弹出提示:[INFO]Installing .... to .... ,这表示正在将构件安装到本地仓库。

3.2 远程仓库

安装好Maven之后,如果不执行任何Maven命令,本地仓库目录是不存在的。当用户输入第一条Maven命令之后,Maven才会创建本地仓库,并根据配置和需要,从远程仓库下载构建至本地仓库。

常用的远程仓库有:

Java.net Maven -> http://download.java.net/maven/2/

JBoss Maven -> http://repository.jboss.com/maven2/

3.3 *仓库

*仓库其实就是一个远程仓库,不同的是这个仓库是Maven官方提供的,专门为全世界的Java程序员提供服务。如果你下载Maven后没有修改settings.xml配置文件,那么你默认就会从这个*仓库里下载构件。

3.4 私服

对于本地的Maven仓库来说,私服也可以算是一个远程的仓库,只不过这个仓库与本机处于同一个局域网下。通过私服可以更快地下载所需的构件,并且私服拥有的环境更加稳定。此外,也可以将一些公共的构件部署到私服上,提供给其他成员使用。

4.远程仓库的配置