Maven实战(九)Maven仓库简介
目录
一、作用
Maven仓库分为本地仓库和远程仓库,集中存放项目引用的jar包,无需将jar包放在程序中,结合Maven项目的pom.xml,使得项目管理jar包更容易,有以下几个优点:
-
对于项目来说,无需关心jar包存储问题,只管理好配置即可
-
易于搜索和使用jar包,不需要到网上到处找,仓库提供了几乎所有的jar包资源,并提供专业的搜索引擎,我们很容易就能找到我们所需的jar,并获取它的坐标信息,在Maven项目中增加相应的依赖即可,简单快捷
-
易于管理jar包版本,pom.xml中可以一目了然的看到jar包的版本,且可以通过相关配置来约束项目使用的jar包的版本
-
易于发现并排除jar包的依赖冲突,在传统方式管理jar包的情况下,如果出现多个jar包的依赖出现冲突的时候(如ssh相关的jar包),很难排除冲突和找到互相适应的版本,而使用Maven管理,这些将变的非常简单
-
管理自定义的jar包
有些jar包是我们自己开发的,我们也可以将其放在仓库里,供其他项目使用,Maven仓库使jar包的发布和管理变得简单和有效,且能有效的控制版本变更
二、本地仓库
本地仓库是远程仓库的一个缓冲和子集,当你构建Maven项目的时候,首先会从本地仓库查找资源,如果没有,那么Maven会从远程仓库下载到本地仓库,这样在下次使用的时候就不需要下载了。Maven缺省的本地仓库地址为${user.home}/.m2/repository,也可以在settings.xml文件中修改该地址
三、远程仓库
是指部署在远程的仓库,默认是Maven的中央仓库,也可以是Nexus仓库服务器
远程仓库拥有大量的jar包资源,运用Nexus可以在局域网搭建企业级的Maven仓库,下一章将会讲到
四、仓库的配置
1.Settings.xml中配置远程仓库
<repositories> <repository> <id>jdk14</id> <name>Repository for JDK 1.4 builds</name> <url>http://www.myhost.com/maven/jdk14</url> <layout>default</layout> <snapshotPolicy>always</snapshotPolicy> </repository> </repositories>
2.使用镜像,覆盖中央仓库的地址
有时候我们并不想从中央仓库下载,而是想直接从本地服务器仓库下,配置如下:
<mirrors> <mirror> <id>mirrorId</id> <mirrorOf>*</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://demo.shiyuesoft.com:8888/nexus-2.1.2/content/groups/public</url> </mirror> </mirrors>
3.在Maven项目中pom.xml配置
<!-- jar包仓库 --> <repositories> <repository> <id>nexus</id> <url>http://demo.shiyuesoft.com:8888/nexus-2.1.2/content/groups/public</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <!-- 插件仓库 --> <pluginRepositories> <pluginRepository> <id>nexus</id> <url>http://demo.shiyuesoft.com:8888/nexus-2.1.2/content/groups/public</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories>
出处:http://www.cnblogs.com/tangyanbo/
本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。 如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。欢迎加QQ讨论群
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?