IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> maven----基本概念介绍 -> 正文阅读

[Java知识库]maven----基本概念介绍

maven----基本概念介绍

本文目的

??接上一篇maven----出现之前样子,继续介绍maven的基本情况,打算这篇文章只写maven仓库坐标,下一篇再单独讲版本

正文

1. maven的出现

?? 上一篇写过maven出现之前的种种问题、日渐增长的需求呼声。最终某些大神已经抓耳挠腮,忍不住放了大招,创建了各种应对的项目管理工具,造福我们。
??项目管理工具的出现,也是大神们基于这些大量项目的实际需求,抽象了一个完整的管理模型,限制大家,只要遵循世界里的约束写法,就可以直接使用大量成熟的maven插件完成任务、实现项目的自动依赖。

1.1 maven 定义

??maven翻译为“专家、内行”,也可以翻译为“知识的积累”。maven作为apache组织中的开源项目,是一个跨平台的项目管理工具(windows/mac/linux都是一样的命令)。主要服务与基于java平台的项目构建依赖管理项目信息管理。无论小型开源类库项目、企业级应用、传统开发、敏捷模式,都能很好的大显身手。
??maven通过约定,各大公司都将自己的jar提前准备到一个公共仓库(中央仓库)里,对外提供下载地址,开发项目只要按照maven项目的结构进行配置,那随时随地可以下载项目需要依赖的jar包,并且保证了源码与依赖分离多个项目共用依赖,节省了很多的构建浪费的时间,同时还能拥有maven丰富插件的一些帮助。

2. maven 坐标

??maven中有坐标的概念,每个在仓库里的jar包,都是以坐标来唯一表示的。
??关于坐标,大家最熟悉的定义应该来自平面几何,在一个平面坐标系中,坐标(x,y)能够唯一标识平面上的一个点。
在这里插入图片描述

??而实际生活中,我们也可以将地址看成一种坐标。省、市、县、乡、村等信息,能够唯一标识出某个地址。

2.1 坐标的组成

??maven的坐标来是由groupIdartifactIdversionpackagingclassifier这些标签合在一起组成的,如下一个最简单的依赖:

<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-all</artifactId>
    <version>1.7.1</version>
</dependency>

??每个组织或个人形成的这些jar包,即构件,在maven仓库里存储的时候,都以上边的坐标形式来唯一表示,不可能存在相同坐标的构件。

2.2 标签的介绍

?? groupIdorg开头表示非盈利组织、com开头表示商业组织,还有见过cn开头,表示中国社区(比如大名鼎鼎的hutool工具包就是cn开头)。
??一般groupId是三段。第一段即上边的开头,第二段表示公司或组织,第三段代表的是项目名(第三段有的时候没有,但我觉得最清晰的应该是要有第三段的)。
??artifactIdjar包名称,必须有的。
??version即对应当前jar包的版本,因为jar包也是个组织或公司维护的小项目,肯定也是不停的迭代,需要有版本的管理。具体版本这块,会放到下一节单独讲。
??packaging分为jarwarpom

  • jar包大家都清楚了,一般像我们引用的依赖,都是jar包,springboot默认的启动项目也是jar包。
  • war包是需要放到容器中启动的(现在springboot也可以改成war包,直接java -jar启动。);
  • pom的话,比如做父子项目结构,或者声明统一引用。

3. maven 仓库

??坐标只是jar包,即构件,在maven世界中的逻辑表示方式,而构件的物理表示方式是文件,maven通过仓库来统一管理这些文件。
??maven仓库将自己想象成一个世界,所有组织、个人放到世界里的jar,也就是构件,都采用坐标的表现形式来锁定到唯一的构件。每个jar都属于maven世界里的一个坐标点。

??maven定义了这样一组规则:世界上任何一个构件,都可以使用maven坐标唯一标识。

3.1 maven 仓库分类

??仓库有本地仓库远程仓库之分。其中远程仓库又分为中央仓库私服仓库其他公共仓库。大概如下图:
在这里插入图片描述

  • 私服,即公司因为有一些是自己开发的jar包,不能发布到公网上,这种情况的话,就需要自己建里私服,一般现在常用的仓库管理器就是nexus
  • 中央仓库,即Maven自己官方仓库,大部分的像一些叫的上名的依赖,都会在中央仓库中发布,其他的仓库基本都是基于中央仓库同步。
  • 其他公共仓库,因为中央仓库一般下载比较慢,所以国内也有阿里云等开放的公共仓库可以下载。
  • 本地仓库,即自己电脑上设置的maven仓库,当使用maven的时候,就会先到本地仓库里获取,本地仓库没有的话,就会从公司私服上找,私服上没有的话,就会根据私服配置的外网仓库来同步。
3.2 maven 下载依赖过程

??如下图,我是从《maven实战》书中拍过来的,具体描述的我们在Maven项目开发过程中,依赖下载的过程。
在这里插入图片描述

?? 从上图大概可以看到,当项目首次加载的时候,都会先到本地仓库找,找不到再到私服上找,找到的话,会同步到本地仓库,如果找不到,那就要依靠私服上配置的外网仓库依次查找,直到找到,如果找不到,那就没有了。

4. nexus私服

?? 这里再看下公司私服界面端的一些信息。当然每个公司不太一样,只要知道大概有啥东西就行了。
?? 在公司里开发,一般领导都会让你们连特定的一个maven地址,那可以把它们复制出来在浏览器上访问以下,一般都能访问出东西,只不过有的是那种简单的树结构,有的是nexus的UI界面。如下:
在这里插入图片描述
?? 还有的删一下路径,比如上图,删掉后边的路径到http://www.xxxx.com/nexus之后,可能会出来下边的页面:
在这里插入图片描述
?? 如果能出现UI界面,假如有账号的话,登录进去才可以看到仓库的一些东西。因为一般普通开发无权限登录这个页面,可能给你们的账号登录不上。

?? 登录成功后可以看到下边的信息:
在这里插入图片描述
?? 大概也能理解nexus是个什么了,首先它是一个专门用来搭建maven私服的一个仓库管理器,它里边主要就是仓库、有对应的各种配置下载依赖的源地址。每个仓库里有对应的依赖包管理,并且可以在这个UI界面里上传依赖、查看依赖信息等操作。

5. 结束语

?? 主要都是文字,可能看起来有点费劲,主要理解仓库坐标这两个东西吧,下一篇会单独讲version,也是我感觉最有意思的。所以单独拿出来写,希望不能太失望。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:29:19  更:2021-07-31 16:29:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 6:15:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码