简述本地仓库,maven中央仓库库和私服的区别

第7章 仓库
第7章 仓库
本章介绍了maven的仓库概念,仓库分类等内容。
7.1 何为maven仓库
maven仓库就是放置所有jar文件(war,zip,pom等等)的地方,maven项目可以从maven仓库中获取自己所需要的依赖jar。
第7章 仓库
本章介绍了maven的仓库概念,仓库分类等内容。
7.1 何为maven仓库
maven仓库就是放置所有jar文件(war,zip,pom等等)的地方,maven项目可以从maven仓库中获取自己所需要的依赖jar。此外,仓库中的构件都有自己的坐标,坐标描述了版本、打包方式和maven如何找到此构件。
7.2 仓库的分类
7.2.1 本地仓库
在第一章安装maven时,我们已经设置了maven本地仓库,那么现在,详细说一说为什么要设置本地仓库。
在maven项目中,是没有lib目录来存放依赖文件的,如果pom.xml中需要依赖,在编译或测试时,maven会自动基于坐标使用本地仓库的依赖文件。
默认情况,maven本地仓库位置在用户根目录的.m2文件夹中。
某些情况下,例如c盘不足,我们需要设置仓库位置。
7.2.1.1 Linux设置方法
找到已注释掉的 &localRepository&/path/to/local/repo&/localRepository&,解开注释;
修改内容为: &localRepository&/usr/local/maven/repo&/localRepository&
当然,路径你可以自己定义。
7.2.1.2 Window设置方法
找到已注释掉的 &localRepository&/path/to/local/repo&/localRepository&
解开注释,修改内容为:
&localRepository& D:/repository &/localRepository&
当然,路径你可以自己定义。
一个maven构件,只有在本地仓库中时,才能供其他maven项目使用。maven一般会自动从中央仓库下载至本地仓库中。
自建的项目需要安装至本地仓库,才能供其他maven项目调用。
安装至本地仓库命令:mvn clean install
7.2.2 远程仓库
远程仓库可以看做和中央仓库相似,他的构件基本上都是从中央仓库克隆来的,还有些是自己发布的构件。那为什么要远程仓库?有时,国内的网络访问中央仓库很慢,这时可以修改maven配置来访问速度更快的远程仓库来下载构件。
7.2.2.1 远程仓库配置
在pom.xml文件中,标签管理远程仓库。
常见的远程仓库地址:
开源中国:
配置pom链接远程仓库:
&oschina repo&
&http://maven.oschina.net/content/groups/public/&
标识仓库的唯一值,central会覆盖中央仓库
true表示开启仓库发布版本下载,false表示禁止
false表示禁止快照版本下载,true表示支持
仓库地址,基于http协议
updatePolicy
远程仓库的检查频率:never-从不检查,always-每次构建都检查,interval:x-每x分钟检查,daily-每天检查
checksumPolicy
检查检验和文件的策略:ignore-不检查,warn-校验错误警告,fail-校验错误构建失败
7.2.3 中央仓库
当maven刚安装至系统中时,本地仓库是空的,maven至少需要一个可用的远程仓库来下载构件,才能执行maven命令。中央仓库就是这样一个远程仓库。
maven默认的远程仓库地址是:
7.2.4 私服
私服是一种特殊的远程仓库,他架设在局域网内或公司内网,负责代理公网上的远程仓库。
maven构建项目时,本地仓库没有所需构件,先请求私服,如果私服上不存在,则从外部的远程仓库下载构件缓存至私服上,供用户使用。
私服的好处:
加速maven构件下载,私服一般会搭建在公司内部局域网中,这样maven的构件下载速度可以比公网下载快很多。
部署第三方构件,当有些构件不能从远程仓库下载,或者某些自己内部开发出的构件,都可以部署至私服上,供用户使用。
降低中央仓库负荷,使用私服可以避免对中央仓库的重复下载。
版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至: 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】哪个编程语言最热门?各个专业领域的技术趋势是什么?如何才能更快速的踏上技术进阶之路……云栖社区2017中国开发者大调查火热进行!答卷可抽奖,红轴机械键盘、天猫精灵,丰富好礼大概率抽取&&
快速、完全托管的TB/PB级数据仓库解决方案,向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更...
消息队列(Message Queue,简称MQ)是阿里云商用的专业消息中间件,是企业级互联网架构的核心产品,基于...
大数据商业智能套件提供海量数据实时在线分析,拖拽式操作、丰富的可视化效果,帮助您轻松自如地完成数据分析、业务数据...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
安全技术百问
Loading...博客分类:
$ mvn install -Dmaven.test.skip=true
mvn clean package deploy -Dmaven.test
.skip=true
clean package install
mvn clean package deploy
工程文件pom.xml的设置
&pluginManagement&
&groupId&org.apache.maven
.plugins&/groupId&
&artifactId&maven
-compiler-plugin&/artifactId&
&configuration&
&source&1.5&/source&
&target&1.5&/target&
&/configuration&
&/plugins&
&/pluginManagement&
&extensions&
&extension&
&groupId&org.apache.maven
.wagon&/groupId&
&artifactId&wagon-ftp&/artifactId&
&version&1.0-alpha-6&/version&
&/extension&
&/extensions&
&repositories&
&repository&
&id&cdc-respository&/id&
&name&cdc-respository&/name&
&url&http://xxx.xxx.xxx.xx:8080/Maven
2Repository&/url&
&/repository&
&/repositories&
&pluginRepositories&
&pluginRepository&
&id&cdc-plugin-respository&/id&
&name&cdc-plugin-respository&/name&
&url&http://xxx.xxx.xxx.xxx:8080/Maven
2Repository&/url&
&/pluginRepository&
&/pluginRepositories&
&distributionManagement&
&repository&
&id&my-deploy-respository&/id&
&name&cdc-plugin-respository&/name&
&url&ftp://192.168.2.177/home/mfguser/Maven
2Repository&/url&
&/repository&
&/distributionManagement&
本地用户setting.xml文件的设定
/root/.m2/settings.xml
&id&my-deploy-respository&/id&
&username&user&/username&
&password&password&/password&
提交到nexus时候报错:
Failed to execute goal
org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy)
on project *: Failed to deploy artifacts: Could
not transfer artifact *:jar:1.0 from/to releases
(http://10.1.81.199:8081/nexus/content/repositories/releases/): Failed
to transfer file:
* /1.0/*-1.0.jar.
Return code is: 401, ReasonPhrase:Unauthorized.
原来是没有配置认证。
maven目录conf的setting.xml里,
用户名和密码都是nexus的。再次deploy即可。
注意这里的id要和pom.xml里远程deploy的地址对应一致,我的pom.xml里配置:
Nexus Release Repository
http://10.1.81.199:8081/nexus/content/repositories/releases/
Nexus Snapshot Repository
http://10.1.81.199:8081/nexus/content/repositories/snapshots/
如果这里不配置,会报错:
错:Failed to execute
goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy
(default-deploy) on project git-demo: Deployment failed: repository
element was not specified in the POM inside distributionManagement
element or in -DaltDeploymentRepository=id::layout::url parameter
浏览 104162
comeonbabye
浏览: 306876 次
来自: 北京
xinzhi_3600 写道u 写道大哥,你 ...
可以了,按照3楼的修改下就可以了
zy 写道请你验证以后再发出来,不要浪费宝贵 ...
请你验证以后再发出来,不要浪费宝贵的时间
u 写道大哥,你这错误挂了三年,得影响多少人 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'可不可以在局域网内设一个共享的maven仓库,用户从这个仓库下载包,如果仓库没有,则仓库从互联网上的仓库自动进行下载? - ITeye问答
由于局域网的用户不一定能全部上网,就算能上网,也用不着每个人都去下载一次,毕竟国内的网速摆在那,现有个想法,就是在局域网内的某一台服务器(可以上网)建一个共享用的maven仓库,用户都是通过这个仓库下载各个包,如果某个包在此仓库不存在,则此仓库(注意是此共享用的仓库)服务器自动去互联网上下载并增加至共享仓库?
由于是maven初学者,不清楚是否能达到这种效果,如果可以的话各用户客户端和共享的maven仓库需要怎么配置?
采纳的答案
完全可以,可以配置一个本地仓库,大家都去本地仓库下在。如果本地仓库没有的话,本地仓库会自动去中央仓库下载的。
本地仓库的详细配置请看
/blog/349534
然后在自己的.m2/settings.xml里面
配置完全使用本地仓库
&mirror&
&&&&& &id&nexus&/id&
&&&&& &name&Nexus&/name&
&&&&& &mirrorOf&*&/mirrorOf&如果不想全部从本地仓库下,就改成central
&&&&& &url&本地仓库的url&/url&
&/mirror&
这个肯定是可以的。
lz网上搜搜maven架设私服。。。一坨一坨的~~~~
已解决问题
未解决问题

我要回帖

更多关于 阿里中央仓库 的文章

 

随机推荐