加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 本地

为什么执行maven命令时,会首先链接远程仓库呢

时间:2024-01-24 20:38:05  来源:http://www.gzrxw.net  作者:admin

一、为什么执行maven命令时,会首先链接远程仓库呢

在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。

Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库。(仓库就是存放依赖和插件的地方)

任何的构件都有唯一的坐标,Maven根据这个坐标定义了构件在仓库中的唯一存储路径,

解读Maven在仓库中的存储路径:

1.基于groupId准备路径,将句点分隔符转成路径分隔符,就是将 . 转换成 / ; example: org.testng --->org/testng

2.基于artifactId准备路径,将artifactId连接到后面:org/testng/testng

3.使用version准备路径,将version连接到后面:org/testng/testng/5.8

4.将artifactId于version以分隔符连字号连接到后面:org/testng/testng/5.8/tesng-5.8

5.判断如果构件有classifier,就要在 第4项 后增加 分隔符连字号 再加上 classifier,org/testng/testng/5.8/tesng-5.8-jdk5

6.检查构件的extension,如果extension存在,则加上句点分隔符和extension,而extension是由packing决定的,org/testng/testng/5.8/tesng-5.8-jdk5.jar

到这里我们就明白了Maven 对于构件存储的细节。

Maven 仓库的分类:

maven的仓库只有两大类:1.本地仓库 2.远程仓库,在远程仓库中又分成了3种:2.1 中央仓库 2.2 私服 2.3 其它公共库

1.本地仓库,顾名思义,就是Maven在本地存储构件的地方。

注:maven的本地仓库,在安装maven后并不会创建,它是在第一次执行maven命令的时候才被创建

maven本地仓库的默认位置:无论是Windows还是Linux,在用户的目录下都有一个.m2/repository/的仓库目录,这就是Maven仓库的默认位置

如何更改maven默认的本地仓库的位置:这里要引入一个新的元素:localRepository,它是存在于maven的settings.xml文件中

1.1 更改配置用户范围的本地仓库:先在/.m2/目录下创建settings.xml文件,然后在~/.m2/settings.xml,设置localRepository元素的值为想要的仓库地址

二、怎么配置eclipse中maven首先本地仓库

1、手动创建本地仓库的地址为,在对应路径D:\IDE\personalEclipse\下创建repository文件夹,然后将D:\IDE\personalEclipse\apache-maven-3.3.9\conf\setting.xml这个路径下的文件复制到D:\IDE\personalEclipse\repository该文件夹下。

2、从windows的环境变量中增加了:M2_REPO=D:/IDE/personalEclipse/repository,同时把这个变量增加到path变量中。

三、如何让maven只使用本地仓库

解释:查看是否成功最简单的方法是下载包到本地仓库。 第一步:新建一个maven工程,或者找一个带有pom.xml配置文件maven工程。 第二步:右击这个工程,在弹出的菜单中,找到“maven”点击,在弹出的菜单中,选择download source下载资源。

四、maven注入本地maven库是必须的吗

maven依赖会优先在本地库中查询依赖包,若本地库没有,则会在中央库自动下载依赖。一般公司maven配置中央库都会改为公司内部私库,包含有各种常用包,这样可以统一依赖包来自公司内部。

五、maven是怎么判断包在本地仓库和远程仓库哪个是新的

maven对构件的更新判断基本上是两种,一种是稳定版本,一种是maven特有的SNAPSHOT版本。

稳定版本很好判断,直接根据maven构件的坐标体系就能够获得。先从本地仓库中找,如果本地仓库没有,就从pom.xml和setting.xml配置的远程仓库来找。

SNAPSHOT版本的判断比较麻烦,基本步骤如下:

假设我在2014年08月22日09时40分52秒在我自己的电脑上使用 “mvn install” 构建了“com.mycompany.demo:test:1.0-SNAPSHOT”。

那么Maven会在本地仓库目录“~/.m2/com/mycompany/demo/test/1.0-SNAPSHOT/”下生成文件“maven-metadata-local.xml”,内容如下:

com.mycompany.demo test 1.0-SNAPSHOT true jar 1.0-SNAPSHOT pom 1.0-SNAPSHOT

十点钟的时候,其他同事更新了com.mycompany.demo:test:1.0-SNAPSHOT的内容,并通过 mvn deploy 发布到了公司的Maven服务器上。

公司Maven服务器上产生了文件:

test-1.0-20140822.100021-1.jar

test-1.0-20140822.100021-1.pom

并更新了maven-metadata.xml,内容如下:

com.mycompany.demo test 1.0-SNAPSHOT 20140822.100021 34 jar 1.0-20140822.100021-1 pom 1.0-20140822.100021-1

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
相关文章
    无相关信息
栏目更新
栏目热门