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 ...
随机推荐
- 出现 HTTP 错误 500.19 错误代码 0x800700b7
这个内容出现主要问题是在IIS上,我们一般程序开发 iis中默认的路径只是http://localhost/,相当于环境变量中已定义好了,如果自己创建的项目直接将路径定义到这,就会替换图二中的路径,然 ...
- 查找最大和次大元素(JAVA版)(分治法)
问题描述:对于给定的含有n个元素的无序序列,求这个序列中最大和次大的两个不同元素. 问题求解分析(分治法):先给出无序序列数组a[low...high].第一种情况为当数组中只有一个元素时,此时只存在 ...
- CNN 笔记
1. 卷积后的图像的大小为 (w+2p-f)*3 / s W为图像的宽,p为padding的大小, f为卷积核大小, 3 为图像的通道数, s为步长 2. 卷积层和池化层的区别? 卷积层是 ...
- spark2.0 DataSet操作的一些问题记录
随着新版本的Spark已经逐渐稳定,最近拟将原有框架升级到spark 2.0.还是比较兴奋的,特别是SQL的速度真的快了许多.. 然而,在其中一个操作时却卡住了.主要是dataframe.map操作, ...
- webpack4快速上手
1.在项目根目录cnpm init -y初始化.生成package.json文件 2.在项目里面使用cnpm安装webpack 3.需要在根目录下新建webpack.config.js文件(在其里面配 ...
- 如何使用JDBC连接数据库
1 JDBC:java database connectivity,是java程序与数据库系统通信的标准api 2 下载mysql JDBC驱动,解压缩找到mysql-connector-java-5 ...
- JEESZ-SSO解决方案
提醒:文档只是作为一个基础的参考,愿意了解的朋友可以随时咨询. 第一节:单点登录简介 第一步:了解单点登录 SSO主要特点是: SSO应用之间使用Web协议(如HTTPS),并且只有一个登录入口. S ...
- 使用Mysql-magic获取Mysql账户密码
版权声明:本文为博主原创文章,欢迎转载,转载请注明原文超链接https://www.cnblogs.com/zerotrust/p/10846530.html 本文仅限于技术讨论与分享,严禁用于非法用 ...
- 作业九——DFA最小化
1.将DFA最小化:教材P65 第9题 I {1, 2, 3, 4, 5} {6, 7} {1, 2}b->{1, 2, 3, 4, 5} {3, 4}b->{6, 7} {5}b-> ...
- RNN基础
RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关.具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅 ...