详解Maven的架构,用法,坑点介绍的清清楚楚

本文详述了Maven的用途,从解决依赖管理问题出发,探讨了Maven仓库的层次(本地、私服、中央仓库),解释了Maven的默认配置,包括项目结构和`settings.xml`配置文件。此外,还介绍了Maven的命令行操作,如`clean`、`compile`、`install`等,以及依赖管理中的范围(scope)概念和依赖传递。最后,文章提到了依赖仲裁的最短路径和声明优先原则,以及如何排除不需要的依赖。
摘要由CSDN通过智能技术生成

点关注,不迷路;持续更新Java架构相关技术及资讯热文!!!

没有Maven之前的日子

个人的一个小感受,学习一个新技术,应该以历史的眼光开看待这个新技术出现的原因,以及帮我们解决了什么问题。我们来回忆一下没有Maven的日子是怎么样的?

开发一个项目,需要用别人写好的jar包,我们先把开源的jar包下载下来放到项目的lib目录下,并把这个目录添加到CLASSPATH(告诉Java执行环境,在哪些目录下可以找到你要执行的Java程序需要的类或者包)

我们下载了a.jar发现a.jar还需要依赖b.jar,结果又去把b.jar包下载下来开始运行

如果运气够好,我们的项目在添加完所有的依赖后,能正产运行了。如果运气差点,还会遇到版本的问题,例如a.jar在调用b.jar的时候发现b.jar根本没有这个方法,在别的版本中才有,现在好了,光找依赖和适配版本就能花上不少时间

而且我们往git上上传代码的时候,还必须把这些lib都上传上去。别人下载我们的代码时也必须把lib下载下来,这个真心耗费时间

这时候Maven作为Java世界的包管理工具出现了,当然Java世界还有其他包管理工具,例如gradle等。就像yum是Linux世界的包管理工具,webpack是前端世界的包管理工具一样

Maven仓库的种类

Maven找jar包的过程是这样的,先在本地仓库找,找不到再去私服(如果配置了的话),再找不到去中央仓库(http://repo1.maven.org/maven2/,maven团队负责维护)

从中央仓库找到后,会在私服和本地仓库放一份,从私服找到后也会在本地仓库放一份

当你安装在好了Maven以后,在conf目录下有个settings.xml文件,这个里面配置的项很多,后文会详细介绍这个配置文件。

<!--localRepository
|Thepathtothelocalrepositorymavenwillusetostoreartifacts.
|
|Default:${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->

在这个配置文件下有这样一段话,说了Maven默认的本地仓库地址为${user.home}/.m2/repository(当然你可以重新设置本地仓库的地址,上面就是模板),我是window电脑,来看看这个目录

看到有很多jar包被存到本地,当然如果你想配置私服也是在settings.xml上进行配置,随便一搜很多教程,不再赘述

搭建私服好处多多,在一个公司内部可以开发一些公共的基础组件放到私服上&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值