[maven] dependency标签理解
在maven pom.xml文件中最多的就是dependency标签,我们用maven管理我们项目的依赖。这篇文章简单介绍dependency标签内部各个子标签的意义。
下面是dependency标签的格式
<dependencies> <dependency> <groupId/> <artifactId/> <version/> <type/> <scope/> <systemPath/> </dependency> ... </dependencies>
下面我们分别来讨论其中的各个子标签:
1. groupId
这个标签主要用来唯一标识一个项目或者一组项目,它通常是java包名的全称,例如: io.netty, com.google;
2. artifactId
artifactId用来标识同一groupId下不同的项目,例如: netty-all, netty-handler
3. type
主要用来指明依赖的类型,例如: jar, war, pom,ear等;
4. version
用来标识一个生成物(artifact)的版本,例如: 1.1, 2.0-SNAPSHOT, 4.0.31.Final;
5. classifier
用来区分相同的pom文件下,不同环境构建出的生成物(artifact), 例如: javadoc, sources, jdk16, jdk17
所以一个项目在maven仓库的坐标(coordinate)全称可以表达如下:
artifactId:groupId:packing:version:classifier
例如: io.netty:netty-all:4.0.31.Final
任何pom.xml文件中都必须明确定义生成物(artifact)的坐标(coordianate), 例如:
<groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.0.31.Final</version> <packaging>jar</packaging>
上述的pom定义,最终生成的成果物的名称会遵循如下的格式:
<artifactId>-<version>.<packaging>
上述的pom定义的成果物的名称将是:
netty-all-4.0.31.Final.jar
6. scope
这个scope用来表示当前的依赖所作用的场景(即应该把它添加哪个环境中),它的取值主要有如下几个:
1. compile
2. runtime
3. optional
4. provided
5. test
6. import
7. systemPath
用来依赖本地文件系统的绝对路径的资源,例如,某些jar依赖由于授权关系,maven仓库不提供,必须用户统一相关协议,在指定的通道获取,这时候需要用户把下载的依赖资源保存到文件系统,这时通过maven提供的systemPath把资源引入到maven构建环境中。
文章转载至:https://blog.csdn.net/jjlovefj/article/details/74357388
[maven] dependency标签理解的更多相关文章
- Maven 基础标签之版本管理和冲突解决
前言 我们在做java项目的时候由于jar包太多,我们就需要使用maven做项目管理,管理项目的jar包依赖,包括打包上线 maven基础 Maven 是一个项目管理工具,主要用于项目构建,依赖管理, ...
- Maven错误Failed to read artifact descriptor for xxx:jar 和 missing artifact maven dependency
可参考:http://stackoverflow.com/questions/6111408/maven2-missing-artifact-but-jars-are-in-place http:// ...
- Maven Profile标签
Maven Profiles标签可以针对不同的环境来使用不同的配置文件 在发布的时候可以用 mvn release -p product mvn release -p test mvn release ...
- lib目录和maven dependency目录的jar包冲突
用eclipse时新建项目时,会在lib目录下自动生成一些jar包,然后又在pom.xml文件中添加了依赖,导致lib下的jar包和maven dependency目录下的jar包产生了冲突.刚开始r ...
- maven:pom.xml中没有dependency标签错误
dependency的标签是包含在dependencies中的.
- maven dependency的版本冲突问题
在改造一个旧项目中,遇到各种问题. 旧项目有十多个模块,因为没有一个统一的父pom,它们对第三方的jar的版本没有统一. 虽然也存在公共的依赖模块,比如commons.util,但是,我们的模块中,有 ...
- Maven - dependency那些事儿
身边有几位刚使用Maven的同学表示——在一个叫"pom.xml"的文件里声明一个依赖就不用去手动添加jar了,感觉这东西和自己手动管理依赖没太大区别. 当然,并不是这样,在此记录 ...
- maven dependency中scope=compile 和 provided区别
问题再现: 上次这边朋友问我一个问题,就是他们在pom.xml中的dependency中,看到有一些是<scope>provided</scope>的情况,比如如下: < ...
- Maven仓库的理解及配置
什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文 件,如log4j.jar,junit. ...
随机推荐
- Eclipse 项目导航字体设置 左侧树字体
在解压的文件下 E:\eclipse\plugins\org.eclipse.ui.themes_1.2.0.v20170517-0622\css\dark 找到 e4-dark_basestyle ...
- thc_业务积累
查询医生SQL: select aa.id staffid,bb.property_value staffname from thc_warehouse.staff_record aa inner j ...
- windows下通过压缩包安装MySQL
一.下载压缩包 二.解压缩后存放在该路径下 三.配置环境变量 将D:\Program Files\mysql-8.0.11-winx64\bin添加到用户PATH变量或系统PATH变量中 ...
- String类中的常用方法
String类 一.转换成String方法 1.public String(); 空参构造 初始化一个新创建的 String 对象,使其表示一个空字符序列 2.public String(byte[] ...
- 007_Reverse Integer
###solution1####small data # def reverse(x): # res=[] # t=0 # p=1 #记录位数 # y=x # if x<0: # x=-x # ...
- GIT刷新忽略文件.gitignore
1.使用命令工具Git Bash,进入需要修改的工作目录.如C:/est 则输入 cd c:/test 2.重置所有缓存(注意后面有个.) git rm -r --cached . 3.重新添加(注意 ...
- Windows命令查看文件MD5,SHA1,SHA256 文件校验
certutil -hashfile yourfilename.ext MD5 certutil -hashfile yourfilename.ext SHA1 certutil -hashfile ...
- zabbix系列 ~ mongo监控相关
,一 简介: 我们来谈谈mongo的监控二 核心命令 rs.status() 关注复制集群是否健康 db.serverStatus() 关注实例整体性能三 目标解读 主要来解读下db. ...
- 强网杯2018 Web签到
Web签到 比赛链接:http://39.107.33.96:10000 比赛的时候大佬对这题如切菜一般,小白我只能空流泪,通过赛后看别人的wp,我知道了还有这种操作. 这个赛题分为3层 第一层 Th ...
- C# 事务 四种事务隔离级别
http://www.zsythink.net/archives/1233 不同隔离级别的问题 脏读(Dirty Read) 一个事务处理过程里读取了另一个未提交的事务中的数据 例子: 当一个事务 ...