maven的使用

一、第三方库

1. 概念

IT行业流行一句话,叫做“不要重复造轮子”,以Java语言为例:
1.JDK已提供的功能,可以通过相应的 API 直接使用,不用自己重新实现。
2.JDK没有提供的功能,在富有开源精神的 IT行业,大部分通用功能也都能在开源社区找到。

概念:
某个编程语言在安装好开发环境以后,默认会提供基础API。除此之外,还可以由第三方提供代码库(我们称为第三方库,一般为后缀为jar的文件),我们可以通过第三方库提供的API来使用某些已有的功能,而不用重复造轮子,能够节约大量的时间。

第三方库jar文件为一个压缩文件,可以使用解压软件打开,里边包含的都是class文件,即编译好的可在JVM上运行的字节码。一个Java程序基于某个第三方库来实现某些功能时,该第三方库也称为该Java程序的依赖包

软件开发中也有很多常见的场景和常见的问题,也就会有大佬产生出这些问题场景的对应办法,并且封装成了库,供程序员来使用,可以简化开发,提高开发效率。

除了Java标准库以外,还有大量的第三方库,这些库共同构造了整个 "Java”生态。
生态不仅仅是包含库,也是包含框架的。框架就是更复杂的库。

更准确的说,库是被动的,程序员需要自己去实现一些逻辑,在该逻辑下去使用库。而框架是主动的,即程序员只需要按照这个框架去实现一些逻辑就能解决实际问题,达到一些自定制的效果。

2. 第三方库的寻找

主要有三个途径:
1.官方网站(比较知名的第三方库/框架),例如 mysql connector 就是在maven仓库上面找的。
2.github(比较知名的第三方库,通常知名的都会在github上开源)
3.中央仓库。
一些大佬们都把第三方库都归档到了一起,只要在这个中央仓库里集中搜索,里面什么jar包都有,因此就可以有统一的下载/安装手段了。
如果是手动去导包,会非常麻烦。因为这个jar包可能会有依赖性。即A要依赖于B才会有效果,而B又会依赖于C才会有效果。而使用maven工具就能够一次性解决这个问题。这个工具只有Java有,而C++没有。

二、maven

1. maven的功能

因为后面写代码就是在做工程,是一件很复杂的事情。正因为很复杂才要想办法去解决问题。一系列的jar包即第三方库就是用来解决这些实际问题的。
maven不仅仅可以用来快速导包,它一共有三个功能
1.组织好项目的目录结构。当文件的目录多了之后,如果没有归好类,就会很麻烦,难以寻找。

2.构建打包程序(编译,打jar包)。在一个项目完成了之后需要打jar包,但可能不是全部都打完,会根据实际情况来打。前面写的程序都比较简单(不涉及到模块划分,不涉及各种依赖关系),如果是更复杂的程序,包含很多个模块,先编译哪个,后编译哪个(存在依赖关系),如:模块A调用模块B的代码,则先打包B,后打包A。再如打包,不像idea自动打完全部的包,而是有可能要批量打包,此时maven就能够解决

在公司中经常会进行“持续集成”,程序员每次改一行代码,一旦提交,就会有自动的更新代码,编译,打包,自动化验证,自动化部署等(不能光靠idea去完成)

3.能够管理依赖(自动地下载第三方库,自动安装,自动引入到项目中)

2. maven创建

maven可以去官网中安装,但是没有必要。maven是一个单独的应用程序,也是用java写的。要想安装maven 就需要先装好jdk。idea里面内置了maven。

创建maven的步骤:
1.新建一个项目,选择maven这个选项,直接next即可。
在这里插入图片描述
2.填写项目名称,并选项二择选择路径。
当前阶段,GroupId、Artifactld、Version这三个字段选择默认值即可。这三个字段共同描述了一个 发布后的 jar包。这些第三方库都需要放在中央仓库上,就是通过这三个字段来共同确定唯一的一个jar包。
包括从中央仓库上下载这个jar包的时候,也是要指定这三个字段的。
GroupId:公司/组织名 ;Artifactld:产品名;Version:版本号

公司/组织名一般是公司的域名的倒装的形式来写的(是一个习惯写法,不是强制要求),如:com.alibaba 就是一个组织名,使用域名主要是因为域名是唯一的。

当前用不到这三个属性,因此可以随便写,是因为不需要把咱们写的代码发布到中央仓库上。但是如果在公司上写代码,就必须明确指定这三个字段

3. maven中的项目介绍

创建好maven后,在资源管理器中有下面几个文件,如下图:
在这里插入图片描述
1.test_maven文件 是创建项目的时候指定的名字。
2. .idea文件 是idea的配置文件/项目文件,方便idea来识别这个项目。
3.src文件 是存放源代码的目录。
4.main文件 是存放业务代码的。
5.java文件 是放java代码的,在main文件中 就是存放实际需要解决问题的代码。在test文件中 就是存放 用来验证业务代码是否正确的代码。
6.resources文件 是放依赖的资源(例如,代码中需要用到一个 图片/文本文件)
7.test文件 是放测试的代码。
8.pom.xml文件 是maven最核心的配置文件,下面会介绍

这里补充介绍一下,用代码来测试代码是什么意思。
如:
业务代码:写一个功能,布置作业(写了很多代码,把功能实现出来)
测试代码:写一段代码,这个代码自动的调用 业务代码中的“布置作业的功能”,取随机个作业,把作业随机地分配给若干个同学,然后再自动检查这些同学能否收到作业,看到作业详情,作业的内容和布置的是否一致。

4. pom.xml配置文件

xml 是一种广泛使用的数据格式,一个xml是由很多个标签组成的。
在这里插入图片描述
里面的标签相互之间的结构跟N叉树很相似:
在这里插入图片描述
xml中的标签是键值对的结构,而开始标签中也可以带一些属性,这些属性也是键值对的结构,键和值之间用=分割,键值对和键值对之间用 空格 分割

下图里面的属性表示 该xml 的schema文件的路径。通过schema 文件来约定该 xml 里面能有哪些标签,以及怎么样组织标签是合理的。这个东西只是为了方便开发者工具对 xml文件是否合法进行校验。
在这里插入图片描述
xml和html最大的区别就是:html中允许存在哪些标签,以及标签之间该如何嵌套,是有明确规定的。而xml 里面的标签名是可以随意的,如<朱俊锐>

对xml配置文件里内容的说明:
在这里插入图片描述

5. 使用maven

当前使用maven主要是两件事:
1.用来管理依赖(自动引入第三方库)
需要修改 pom.xml 的depencies标签,需要依赖的第三方库都写在dependencise里面。
在这里插入图片描述
如,引入JDBC编程需要的 mysql connector包。先找到maven的中央仓库,在搜索框输入mysql后找到jar包合适的版本。
在这里插入图片描述
找到合适的版本点进去:
在这里插入图片描述
点进去后往下拉,有maven的这一框:
在这里插入图片描述
选中全部代码之后复制到pom.xml 的配置文件的depencies标签的内容处,它就会自动进行下载。虽然之前直接复制jar包到idea的确可以,但是如果需要有依赖的jar包,下载一个往往是不行的,并且该包不知道所依赖的包的路径去哪里寻找,就会很麻烦。而maven直接复制代码进去自动下载就会把全部都下载进去,这个是非常便的

在这里插入图片描述
使用maven下载jar,默认还是从 maven官方的仓库来下载,这个时候毕竟是访问国外网站,可能会比较慢。在下载的过程中要保持网络畅通,如果等了很久还没下好,有两种办法解决:
1.点击刷新。如下图:
在这里插入图片描述
2.修改 maven仓库的地址,可以手动地把这个仓库修改成国内的仓库(阿里云的仓库),就需要修改 setting.xml 这个文件了。repository 文件就是maven 本地的仓库,.m2就是maven默认的目录。在.m2文件下自己创建一个setting.xml,再根据这篇文章把需要的内容复制到里面即可。
在这里插入图片描述
下图在 .m2文件下的就是本地仓库里面下载好的jar包。
在这里插入图片描述
当在 depencies 里把依赖写好后,此时当jar 包下载完成,也就同时自动的引入到项目中,不需要额外的配置,接下来就可以在代码中使用对应的 库 了。

2.用来打包构建
打包操作,通过maven 这个面板就可以直接打包。Lifecycle是生命周期的意思,生命周期就表示 maven 在软件开发的各个阶段,都能做啥事。
直接双击package 即可进行打包,也可以右键package,然后有个‘run’操作,也是打包。
在这里插入图片描述
打包成功后,会有:
在这里插入图片描述
生成的结果在资源管理器的target 目录中,jar包的名字就是默认 项目名+版本号,就是起maven项目的名字选的版本号:
在这里插入图片描述
打开jar包的文件路径,解压jar包,编译的结果就在.class 文件里面了。接下来就可以把jar包发布给别人去使用了。
在这里插入图片描述

  • 46
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 32
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zjruiiiiii

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

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

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

打赏作者

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

抵扣说明:

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

余额充值