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

maven是怎么判断包在本地仓库和远程仓库哪个是新的,第1张

运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。比如说,你的项目配置了junit-38的依赖,在你运行mvntest的时候,Maven需要使用junit-38的jar文件,它首先根据坐标查找本地仓库,如果找到,就直接使用。如果没有,Maven会检查可用的远程仓库配置,然后逐个尝试这些远程仓库去下载junit-38的jar文件,如果远程仓库存在该文件,Maven会将其下载到本地仓库中,继而使用。如果尝试过所有远程仓库之后,Maven还是没能够下载到该文件,它就会报错。Maven缺省的本地仓库地址为${userhome}/m2/repository。也就是说,一个用户会对应的拥有一个本地仓库。你也可以自定义本地仓库的位置,修改${userhome}/m2/settingsxml:D:\java\repository你还可以在运行时指定本地仓库位置:mvncleaninstall-Dmavenrepolocal=/home/juven/myrepo/还有一点需要理解的是,当我们运行install的时候,Maven实际上是将项目生成的构件安装到了本地仓库,也就是说,只有install了之后,其它项目才能使用此项目生成的构件。了解了本地仓库,接着了解一下Maven缺省的远程仓库,即Maven中央仓库。安装好Maven之后,我们可以建立一个简单的项目,配置一些简单的依赖,然后运行mvncleaninstall,项目就构建好了。我们没有手工的去下载任何jar文件,这一切都是因为Maven中央仓库的存在,当Maven在本地仓库找不到需要的jar文件时,它会查找远程仓库,而一个原始的Maven安装就自带了一个远程仓库——Maven中央仓库。这个Maven中央仓库是在哪里定义的呢?在我的机器上,我安装了maven-2010,我可以找到这个文件:${M2_HOME}/lib/maven-2010-uberjar,打开该文件,能找到超级POM:\org\apache\maven\project\pom-400xml,它是所有MavenPOM的父POM,所有Maven项目继承该配置,你可以在这个POM中发现如下配置:centralMavenRepositorySwitchboarddefaultmaven2,它关闭了snapshot版本构件下载的支持。

maven--私服的搭建(Nexus的使用)和注意的问题
私服是什么
私服,私有服务器,是公司内部Maven项目经常需要的东东,不总结一下,不足以体现出重视。Nexus是常用的私用Maven服务器,一般是公司内部使用。下载地址是>

首先我要说,你这么做,从时间成本上讲,完全没有必要。

就方法上,下面是具体步骤。

假设 maven 仓库地址  --D:\Maven_Repository

      nexus   地址        --D:\nexus

1将D:\Maven_Repository下的所有文件拷贝到D:\nexus\sonatype-work\nexus\storage\central\下

2在nexus管理页面上更新索引,跳过一些选择图,点击内容见圈中文字。

3索引有多大呢,看图,这也是我不建议你去做的原因,列表下面还有一些小文件。

4好了完成,看索引+库文件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13496394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-18
下一篇 2023-08-18

发表评论

登录后才能评论

评论列表(0条)

保存