Java:初始Maven

声明

1)该文章学习借鉴于金昊霖大佬maven详解

2)博主是萌新上路,文中如有不当之处,请各位大佬指出,共同进步,谢谢。

概念

Maven是Apache下的顶级的开源项目(顶级就是指Apache下的项目都是以此为基础开发的),项目管理工具,管理java项目。

特点:

  • 1、项目对象模型 (Project Object Model)

POM对象模型,每个maven工程中都有一个pom.xml文件,定义工程所依赖的jar包、本工程的坐标、打包运行方式。

  • 2、依赖管理系统(基础核心)

Maven通过坐标对项目工程所依赖的jar包统一规范管理。

  • 3、Maven定义一套项目生命周期

清理、初始化、编译、测试、报告 、打包、部署、站点生成。

  • 4、一组标准集合

强调:maven工程有自己标准的工程目录结构、定义坐标有标准。

  • 5、Maven 管理项目生命周期过程都是基于插件所完成

原理

在这里插入图片描述
1)中央仓库
中央仓库,就是远程仓库,全世界只有一个,仓库中jar包由专业团队(Maven团队)统一维护。而它的服务器就在我们的“脚下”,地球的另一端——英国。

2)私服
局域网中的仓库,一般是在公司内部架设一台私服,其它公司架设一台仓库,对外公开。

3)本地仓库
本地的仓库,它会存储你曾经从Maven仓库中获取的所有jar包依赖,相当于缓存。

Maven第一次会从远程仓库(互联网)去下载jar 包,将jar包存在本地仓库(在程序员的电脑上)。第二次会先从本地仓库找,如果找不到才会去远程仓库找。

4)镜像
由于中央仓库服务器离我们太远,再加上访问量大,所以直接重中央仓库下载往往会很慢,甚至下载失败。所以镜像就随之而生,所谓镜像,其实就是中央仓库的复制版,一般选择国内的镜像,这样会使jar下载速率大大提升。比如阿里的镜像仓库

5)运行机制
当你项目需要添加依赖时,Maven首先会去你的本地仓库找jar包,如果没有则去局域网中的私服仓库找,如果还没有,那就去中央仓库或者镜像中下载(至于去哪个要看你的配置,具体配置后面会讲)。

优势

1)一个项目就是一个工程

如果项目非常庞大,就不适合使用package来划分模块,最好是每一个模块对应一个工程,利于分工协作。

借助于Maven就可以将一个项目拆分成多个工程。

2)项目中使用jar包,需要“复制”、“粘贴”项目的lib中

同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作。

借助于Maven,可以将jar包保存在“仓库”中,不管在哪个项目只要使用引用即可就行。

3)jar包需要的时候每次都要自己准备好或到官网下载

借助于Maven我们可以使用统一的规范方式下载jar包。

4)jar包版本不一致的风险

不同的项目在使用jar包的时候,有可能会导致各个项目的jar包版本不一致,导致未执行错误。

借助于Maven,所有的jar包都放在“仓库”中,所有的项目都使用仓库的一份jar包。

5)一个jar包依赖其他的jar包需要自己手动的加入到项目中

FileUpload组件->IO组件,commons-fileupload-1.3.jar依赖于commons-io-2.0.1.jar。

极大的浪费了我们导入包的时间成本,也极大的增加了学习成本。

借助于Maven,它会自动的将依赖的jar包导入进来。

环境搭建

Mave下载
可以到Maven的官网下载。

个人建议将下载的压缩包解压到IntelliJ IDEA文件夹中的plugins子文件里,以便归类寻找。

该该根目录会有下面的文件夹apache-maven-3.6.3(具体版本看下载的文件)。
maven安装包
本地仓库配置

创建本地仓库

在你想要存储的地方创建文件夹repository表示本地仓库位置。(推荐D盘或者E盘,一般不选C盘)

配置本地仓库

打开Maven的安装目录中conf/ settings.xml文件(以记事本方式打开即可),在这里配置本地仓库:
在这里插入图片描述
这里的意思是配置本地仓库的目录为E:\Javarepository。

如果你不想下载jar包太慢或者下载失败的话你最好找到

<mirrors></mirrors>

这个标签,在里面加上

<!-- 阿里云镜像 -->
	 <mirror> 
	 <id>alimaven</id> 
	 <name>aliyun maven</name> 
	 <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> 
	 <mirrorOf>central</mirrorOf> 
	 </mirror>
	 
	 <!-- maven官方镜像 -->
	 <mirror>
	 <id>mirrorId</id>
	 <mirrorOf>central</mirrorOf>
	 <name>Human Readable Name </name>
	 <url>http://repo1.maven.org/maven2/</url>
	 </mirror>
	 
	 <!-- junit镜像地址 -->
	 <mirror> 
	 <id>junit</id> 
	 <name>junit Address/</name> 
	 <url>http://jcenter.bintray.com/</url> 
	 <mirrorOf>central</mirrorOf> 
	 </mirror>

如下:
在这里插入图片描述
这样我们就可以优先重镜像仓库中下载!

总结

通过金昊霖大佬的博客和讲解,对Maven也有了个初步的认识,在往后的学习生活中也会融会贯通,这里就不写Maven的项目结构了,因为本人也不太了解,大家想要更加详细的了解Maven,请点击maven详解

人生就是在不断地学习中前进,不气馁于一时的落后,找准目标,选对方向,加油干!古之立大事者,不惟有超世之才,亦必有坚韧不拔之志!以梦为马,不负韶华,岂能尽如人意,但求无愧己心!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sid10t.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值