仓库的分类
本地仓库、远程仓库(中央仓库、私服、其他公共库)
1、本地仓库
无论是在window还是在Linux系统上,每一个用户在自己用户目录下都有一个.m2/repository/仓库的目录。例如:
我的windows上是c:\users\jader.m2\repository,linux上是:home/jader/.m2/repository,在Linux系统中,以.开头的文件或目录是隐藏的,可以使用ls -a来显示隐藏文件或目录
有时候C盘空间可以自定义本地仓库目录,在Maven的安装目录的conf下找到settings.xml文件,配置如下:
<localRepository>D:\Respositories\Maven</localRepository>
一个构件只有在本地仓库之后,才能由其他Maven项目使用,那么构件如何进入到本地仓库呢?最常见的是从远程仓库下载到本地仓库,还有一种的常见的情况是,将本地项目的构件安装到Maven仓库中。例如:
本地有两个项目A、B,两者都无法从远程仓库获得,而同时A又依赖于B,为了能构建A、B,那就必须首先得以构建并安装到本地仓库。
在某个项目执行mvn clean install命令
install插件的install将项目构建输出文件安装到本地仓库。
2、远程仓库
安装好Maven之后如果不执行Maven命令,本地仓库目录是不存在的,当用户输入第一条Maven命令之后Maven才会创建本地目录。本地仓库就好比书房,我读书的时候先从本地书房找,如果没有我再去网上书店购买,购买完毕之后再放到自己的书房。每一个用户只有一个本地仓库,但是可以配置多个远程仓库。
我们需要在什么时候配置远程仓库呢?当你连接中央仓库的速度比较慢时,或者你为你的公司搭建了自己的仓库,比如Nexus仓库管理(后面我会介绍),又或者你苏需要的jar存在另外一个公共仓库,比如我们配置一个国内的镜像地址:
<project>
…
<repositories>
<repository>
<id> maven-net-cn</id>
<name> Maven China Mirror</name>
<url> http://maven.net.cn/content/groups/public/</url>
<releases>
<enabled> true</enabled>
</releases>
<snapshots>
<enabled> false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id> maven-net-cn</id>
<name> Maven China Mirror</name>
<url> http://maven.net.cn/content/groups/public/