maven依赖管理(坐标详解)~滴滴!配置好你的收货地址

知识都藏在犄角旮旯里

maven 坐标详解

今天,我们来看一下maven的坐标。maven之所以可以自动化解析任何一个java构件,都是基于它们的坐标。所谓的坐标,就类似于淘宝购物,我们需要填写的省市县(区),街道,小区。最后组合起来就是我们的收货地址。maven的坐标正是由groupId、artifactId、version、packaging、classifier 组成,每个表示不同的信息最后组合成一个构件的唯一标识符。

groupId 组ID

<groupId>公司(组织)域名反写.项目名</groupid>

例如:

<groupId>org.sonatype.nexus</groupId>

已经很浅显易懂了吧。

artifactId 工程ID

<artifactId>项目名—模块名</artifactId>

例如:

<artifactId>nexus-indexer</artifactId>

同样的浅显易懂。

version 版本

version,中文翻译版本,也就是此项目对应的版本信息。这个在maven中分为 SNAPSHOT(快照)、RELEASE(发布版)。别着急,这个两个版本的区别听我娓娓道来。先讲RELEASE发布版,假设我们需要spring的依赖,我们去maven中央仓库找到坐标,根据坐标maven会自动给我们下载解析。假设我们本次使用Spring4,但是我们突然需要Spring5 的新特性,我们只需要更改一下版本号,maven就会自动帮我们下载我们需要的Spring。但是呢,在日常的开发工作中,每个人负责的模块又不相同,又存在互相依赖。不可能A每次都去更改版本号,然后B问A:老哥,最新的是什么版本。一次两次还可以,九次十次,怕是要打起来。所以就出现了快照版,每隔一段时间项目都会去仓库访问最新的依赖。这样就省很大事,看来技术可以维护和平啊。

<version>版本号-类型(如果是快照版本,需要添加SNAPSHOT)</version> 

发布版举例:
这个理论上是可以自定义,但是要有约定哦,不然谁知道你那个是高版本。

<version>2.0.0</version>

快照版举例:

<version>1.0-SNAPSHOT</version>

打包方式

packaging ,中文翻译包装,在maven中就是打包的意思。maven中打包方式有三种:pom,war,jar(默认方式)。每一种都有自己的用途。
pom:
pom 工程,一般用来管理项目的。顶级父类一般都是pom工程,当然在maven聚合工程会涉及到。

<packaging>pom</packaging>

jar:(默认方式)
jar 包,一般是内部调用或者是作服务使用,作构件,做依赖。当然也不一定。

 <packaging>jar</packaging>

war:
war包,war就是需要部署的项目,放在tomcat中可以跑的那种。贼6

<packaging>jar</packaging>

classifier (可选)

classifier ,中文翻译分类器。哦!天呀,好生硬的翻译。通常用于区分从同一pom构件的具有不同内容的构件,可以是任意字符串,最后会附加在版本号之后。(其实就懒得做重复的工作)
应用场景:① 区分基于不同版本的jar包。
② 区分项目的不同组成部分。例如:源代码,javadoc,类文件。
例如:

<classifier>jdk1.3</classifier>

最后打包会生成 XXX-XXX-XXX-jdk1.3,.jar
导入依赖的时候,如果有此配置,也需要指定。

小结:

我们在编写项目的时候,要按照约定编写坐标。这样才能简单好用。依赖也是通过坐标来导入的。maven学习第一步就是搞清楚坐标。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值