maven坐标及依赖范围的学习(1)
首先,我们先了解什么是maven的坐标(重中之重):
在这里我们可以看到那三个红色的行,基本是pom.xml中出现的最多的配置
例如这个配置:
这里我们可以看到我们这个项目的pom文件中,他对名为(maven-jar-plugin)的插件进行了依赖(dependency,依赖)
同时这个插件的版本为2.4,不过要注意的是,这个插件并不是一加载这个插件就会执行它的任务,因为这个插件要在开发者执行特定的命令后才会执行(关于这些在eclipse里执行maven的命令较为常用的几个,详情见 http://blog.csdn.net/u011939453/article/details/43017865),你可以看见有一个是package命令(注意mvn可以不写,因为在eclipse里run as默认是在maven里运行的),,运行完成之后机会惊喜的发现,你的项目的target文件里多了一个jar包!!(这里可能你会出现并没有jar包,这时你最好右键点击你的项目名,找到maven选项,update一下!!)
关于这个scope(依赖范围),这个其实作用是指,你依赖(dependency)里的jar包或者其他项目,他们并不是全局跟着你的项目周期走的!如图,具体范围:

可能你对这个依赖范围不是很明白,但是你可以通过这个表的例子这个列来看事务本质:
(1)log4j,可以说这个日志几乎要在项目的全局出现,所以他在三个时期都是有效的,所以scope的范围是compile。
(2)junit,相信这个包很多人一定很熟悉(不熟悉的先去百度其他帖子看看这是什么),我相信大家一定知道,当你把你的项目源码打包给你的客户时,你一定不会想把那么多测bug的代码也一起给他吧?所以scope为test时,这个依赖的东西是不是进入打包阶段的!!
(3)servlet-API,这个其实可以这样理解,我们平时在web代码时,例如写servlet,我们需要引入servlet的jar包,因为我们在编译期间需要用到这些类和接口,就像A类里需要import B类似得,这样在写代码时不会出现编译错误(语法错误!),但是当我们往tomcat上发布时,Tomcat本身就提供了这个jar包,这里就可能产生冲突,所以这里的servlet jar包就需要设置provided,以确保不在运行期间起作用,servlet API不会出现在打包好的war中,(war,web应用)。
(4)JDBC Driver,这是一个依赖范围是runtime的jar包,是一个只在运行期间起作用的依赖jar包,在runtime scope下定义的依赖只会在运行期可用,而在构建期的类路径下不可用。这些依赖将会被打包到最终的artifact中。比如你有一个基于web的应用需要在运行时访问MySQL数据库。你的代码没有任何MySQL数据库驱动的硬依赖。你的代码仅仅是基于JDBC API来编写,在构建期并不需要MySQL数据库驱动。然而,在运行期,就需要相应的驱动来操作MySQL数据库了。因此,这个驱动应该被打包到最终的artifact中。
maven坐标及依赖范围的学习(1)的更多相关文章
- 03 Maven 坐标与依赖
Maven 坐标与依赖 Maven 的一大功能是管理项目依赖.为了能自动化地解析任何一个 Java 构件, Maven 就必须将它们唯一标识,这就依赖管理的底层基础 一一 坐标.本章将详细分析 Mav ...
- 3.Maven坐标和依赖
1.1 何为Maven坐标 正如之前所说的,Maven的一大功能就是管理项目依赖.为了能自动化地解析任何一个Java构件,Maven就必须将它们唯一标识,这就依赖管理的底层基础——坐标. 1.2 坐标 ...
- 4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念
1 maven概念模型 2 maven的生命周期,项目构建过程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg== ...
- Maven学习笔记—坐标和依赖
Maven的坐标和依赖 1 Maven坐标 1.1 什么是Maven坐标 Maven坐标:世界上任何一组构件都可以使用Maven坐标来唯一标识,Maven坐标的元素包括groupId.artifact ...
- 【Maven】---坐标与依赖
Maven坐标与依赖 最近想深度学习下maven,找到一本书叫<Maven实战>,这本书讲的确实很好,唯一遗憾的是当时maven教学版本是3.0.0的,而目前已经到了3.5.4了,版本存在 ...
- Maven学习(二) -- 坐标和依赖
标签(空格分隔): 学习笔记 坐标 实际就像在几何中,我们用一对坐标(x, y)来表示坐标系中唯一的点:或者我们可以用(经度,纬度)来表示地球上的某一个位置,在Maven的世界中,有坐标来唯一的表示项 ...
- Maven学习笔记2(坐标和依赖)
1.坐标 Maven坐标为各个构件建立了秩序,任何一个构件都必须明确自己的坐标,一个maven坐标是由一些元素确定的 <groupId>com.alivn.account</grou ...
- maven学习(九)——maven中的坐标、依赖以及仓库
一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Maven坐标主要组成 groupId:组织标识(包名) artifactId:项目名称 ver ...
- Maven - Maven3实战学习笔记(2)坐标和依赖
1.maven坐标元素 maven坐标元素包括:groupId.artifactId.version.packaging.classifier. classifier:定义输出的附属构件.groupI ...
随机推荐
- 【css】display:flex和display:box有什么区别
说法一: 注意:前者是flex 2012年的语法,也将是以后标准的语法,大部分浏览器已经实现了无前缀版本.后者是2009年的语法,已经过时,是需要加上对应前缀的.所以兼容性的代码,大致如下displa ...
- SpringBoot实现定时器定时处理任务
最近在项目中遇到了一个问题, 对于新建的活动, 活动设置了开始时间和结束时间, 也就是数据库中的一个状态码的改变而已. 但是,这里就有问题了, 如何去实现到时间更改活动状态呢? 1. 刚开始的时候,我 ...
- canvas-八卦图和时钟实现
八卦图: <body> canvas id="></canvas> <script> //获取到画布元素 let myCanvas = docume ...
- tomcat 部署 React 项目后,浏览器刷新报404问题
问题:tomcat部署了react前端项目,可以正常访问,但是页面刷新就报404 一.问题截图 二.解决办法 在tomcat 配置文件web.xml中配置如下代码: web.xml 路径: apach ...
- 使用Leangoo玩转故事地图
转自:https://www.leangoo.com/9944.html 用户故事是在敏捷开发中表达需求的主要方式,我们在做敏捷开发的时候都有需求池的概念,在Scrum中这个需求池就是产品backlo ...
- python小知识-sys.argv
sys.argv 就是一个从程序外部获取参数的桥梁 1.t1.py import sys a = sys.argv b = len(sys.argv) print(a) print(b) 在pytho ...
- Flutter 34: 图解自定义 View 之 Canvas (一)
小菜最近在学习自定义 View,刚了解了一下 Paint 画笔的神奇之处,现在学习一下 Canvas 画布的神秘之处.Flutter 提供了众多的绘制方法,小菜接触不深,尽量都尝试一下. Canvas ...
- Spring Cloud(八)高可用的分布式配置中心 Spring Cloud Config
在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config,它支持配 ...
- TP5 用cron实现linux定时任务
TP5 用cron实现linux定时任务 1) tp5的控制器内容: namespace app\test\controller; use think\Controller; use think\fa ...
- elasticsearch 数据备份
ES数据备份找了一些方法,发现elasticdump 这个工具不错 elasticdump --input=http://192.168.0.92:9200/hs2840 --output ./hs2 ...