文档章节

对maven中scope理解

OSC-crazier-huang
 OSC-crazier-huang
发布于 2015/08/26 15:30
字数 377
阅读 686
收藏 2

码上生花,ECharts 作品展示赛正式启动!>>>

scope的作用

compile

默认的scope,在部署的时候将会打包到lib目录下,项目在编译,测试,运行阶段都需要

    <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.1.4.RELEASE</version>
    </dependency>

provide

provide适合在编译和测试的环境,他和compile很接近,但是provide仅仅需要在编译和测试阶段,同样provide将不会被打包到lib目录下

eg:tomcat容器会提供servlet所以在部署的时候就不需要在加入了,可以避免jar包冲突

    <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
    </dependency>

runtime

这个scope,仅仅适用于运行环境,在编译和测试环境下都不会被使用

test

这个scope,仅仅适用于测试环境,在编译和运行环境下都不会被使用

eg:

    <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
    </dependency>

###system 跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它 eg:

   <dependency>
   <groupId>javax.sql</groupId>
   <artifactId>jdbc-stdext</artifactId>
   <version>2.0</version>
   <scope>system</scope>
   <systemPath>${java.home}/lib/rt.jar</systemPath>
  </dependency>

为什么需要区分这些scope

可以用来限制dependency的范围可以在不同的环境下打包不同的jar包,比如junit测试类的jar包不需要在编译运行的时候,就可以设置scope为test

** 欢迎加入193826252讨论 实现代码地址https://git.oschina.net/xForMe/fast_redis.git **

© 著作权归作者所有

OSC-crazier-huang
粉丝 11
博文 36
码字总数 10412
作品 0
浦东
程序员
私信 提问
加载中
请先登录后再评论。
理解maven项目的pom.xml文件中,<scope>标签的作用——作用域以及依赖传递

问题介绍:   在maven项目中,最关键的就是pom.xml这个文件,这个文件是用来导入maven项目依赖的jar包以及一些插件等。   在这个文件中导入jar包使用的标签是<dependency>,而在这个标签...

osc_3dayg3dw
2019/04/20
2
0
【Maven】Maven之scope依赖范围

一、理解Maven scope依赖范围的作用 Maven在编译项目主代码的时候需要使用一套classspath。总共有三种classpath,分别对应于Maven编译项目主代码的时候、Maven编译和执行测试的时候、实际运行...

osc_n3qafw1d
2019/08/18
2
0
maven 依赖(依赖范围,聚合,继承等)

目录: 1.什么是依赖? 2.依赖的管理:依赖的范围与传递,依赖的排除,依赖的原则(maven对依赖冲突的处理原则) 3.依赖的版本管理 4.继承与聚合 1.什么是依赖? 简单的讲,当jar包A需要jar包B的支持才...

osc_fht8qhb4
2018/07/13
4
0
Maven依赖管理

其中一个Maven的核心特征是依赖管理。管理依赖关系变得困难的任务一旦我们处理多模块项目(包含数百个模块/子项目)。 Maven提供了一个高程度的控制来管理这样的场景。 传递依赖发现 这是很通...

park
2017/11/28
0
0
Maven快速入门--Idea版

[TOC] 1.web项目的基本知识 1.1 项目构建 项目构建是一个项目从编写源代码到编译、测试、打包、部署、运行的过程 1.1.1传统的构建过程如下: 1)在IDE 中创建一个java web工程 2)在工程中编...

osc_uulhuymj
2019/09/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Elasticsearch如何查询使用JSON字符串的DSL

背景 Java处理ES查询逻辑,有一种情况是用户从其他地方粘贴或者手动输入的JSON字符串的DSL语句;这个时候就没法使用QueryBuilder来构建所需要的SearchSource。查了查发现有个Wrapper的方式可...

叫我哀木涕
29分钟前
17
0
JDBC:ResultSet Types

ResultSet Types 用于确定ResultSet的某些特征和功能。 ResultSet.TYPE_FORWARD_ONLY 只能调用 next,不能调用 previous 。否则报错 ResultSet.TYPE_SCROLL_INSENSITIVE 能调用 next/previou...

mrsuperli
昨天
7
0
Cesium笔记(3):基本控件简介—ImageryProvider地图瓦片地图配

cesiumjs中可定制多种图层,可以使用互联网上很多地图提供商的图层数据,也可以使用自己的地图数据。Cesium支持多种标准化格式的GIS瓦片服务,可以把栅格图层绘制到地球的表面——cesiumjs的...

zhoulujun
昨天
15
0
跟小伟一起学习类加载机制

我们在学习 java 基础的时候,从宏观上了解了一个类到运行大致是:.java 文件通过 javac 编译器编译得到 .class 文件,在用到该类时,jvm 会加载该 class 文件,并创建对应的 class 对象,将...

niceyoo
昨天
8
0
Electron整合React使用搭建开发环境

Electron整合React使用搭建开发环境 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 简介 用于构建用户界面的 ...

归子莫
昨天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部