首先,我们先了解什么是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)的更多相关文章

  1. 03 Maven 坐标与依赖

    Maven 坐标与依赖 Maven 的一大功能是管理项目依赖.为了能自动化地解析任何一个 Java 构件, Maven 就必须将它们唯一标识,这就依赖管理的底层基础 一一 坐标.本章将详细分析 Mav ...

  2. 3.Maven坐标和依赖

    1.1 何为Maven坐标 正如之前所说的,Maven的一大功能就是管理项目依赖.为了能自动化地解析任何一个Java构件,Maven就必须将它们唯一标识,这就依赖管理的底层基础——坐标. 1.2 坐标 ...

  3. 4.Maven概念模型,maven的生命周期,Maven坐标,依赖管理(依赖范围,依赖声明),仓库管理,私服概念

     1 maven概念模型 2 maven的生命周期,项目构建过程 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg== ...

  4. Maven学习笔记—坐标和依赖

    Maven的坐标和依赖 1 Maven坐标 1.1 什么是Maven坐标 Maven坐标:世界上任何一组构件都可以使用Maven坐标来唯一标识,Maven坐标的元素包括groupId.artifact ...

  5. 【Maven】---坐标与依赖

    Maven坐标与依赖 最近想深度学习下maven,找到一本书叫<Maven实战>,这本书讲的确实很好,唯一遗憾的是当时maven教学版本是3.0.0的,而目前已经到了3.5.4了,版本存在 ...

  6. Maven学习(二) -- 坐标和依赖

    标签(空格分隔): 学习笔记 坐标 实际就像在几何中,我们用一对坐标(x, y)来表示坐标系中唯一的点:或者我们可以用(经度,纬度)来表示地球上的某一个位置,在Maven的世界中,有坐标来唯一的表示项 ...

  7. Maven学习笔记2(坐标和依赖)

    1.坐标 Maven坐标为各个构件建立了秩序,任何一个构件都必须明确自己的坐标,一个maven坐标是由一些元素确定的 <groupId>com.alivn.account</grou ...

  8. maven学习(九)——maven中的坐标、依赖以及仓库

    一.Maven坐标 1.1.什么是坐标? 在平面几何中坐标(x,y)可以标识平面中唯一的一点. 1.2.Maven坐标主要组成 groupId:组织标识(包名) artifactId:项目名称 ver ...

  9. Maven - Maven3实战学习笔记(2)坐标和依赖

    1.maven坐标元素 maven坐标元素包括:groupId.artifactId.version.packaging.classifier. classifier:定义输出的附属构件.groupI ...

随机推荐

  1. VBA学习资料分享-1

    近年来,人工智能的概念深入人心,许多企业也正逐步或已推行办公自动化,寻求人力时间成本的降低,从而提升效益.对企业来说,要完全使用人工智能将工作流程自动化恐怕是没那么容易的,可以的话成本也不低,所以使用 ...

  2. 关于SpringMVC映射模型视图的几点小事

    一.SpringMVC概述 SpringMVC为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一. SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器, ...

  3. 重拾MVC——第二天:Vue学习与即时密码格式验证

    今天是复习MVC的第二天,准备自己写一个后台管理,然后慢慢写大,做全. 个人感觉做 Web 的,前端知识是必备的,所有今天学习了一下 Vue,很多人用这个,我以前没有用过,今天把它补起来. 比较了各个 ...

  4. h5嵌套iframe实时传参(适用vue)

    今天看到一个同事研究给iframe传参,由于好奇,我自己也写了个demo,说起来其实也挺简单的,但是在此之前没有用过,便想记录一下 其中主要用到的是postMessage 在页面中引入一个iframe ...

  5. mybatis generator代码生成器的使用

    一.有关mybatis generator的使用可以查看如下网址:http://www.mybatis.org/generator/index.html 二.如下是我自己整理的学习步骤: <1& ...

  6. 【python+beautifulsoup4】Beautifulsoup4

    Beautiful soup将复杂HTML文档转换成一个复杂的属性结构,每个节点都是python对象,所有对象可归纳为4种Tag,NavigableString,BeautifulSoup,Comme ...

  7. json-server

    json-server 一个前端模拟数据的本地化服务器 安装 npm install -g json-server 查看是否安装成功 json-server -v 新建一个文件夹 在文件夹中新建db. ...

  8. 2019 ICPC 南昌网络赛I:Yukino With Subinterval(CDQ分治)

    Yukino With Subinterval Yukino has an array a_1, a_2 \cdots a_na1,a2⋯*a**n*. As a tsundere girl, Yuk ...

  9. 自定义ViewGroup基础巩固2---onMeasure()学习及综合实现圆形菜单

    上次对自定义ViewGroup中的onLayout()方法进行了基础巩固[http://www.cnblogs.com/webor2006/p/7507284.html],对于熟知自定义ViewGro ...

  10. Nginx之什么是反向代理(一)

    什么是反向代理? 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求 ...