文档章节

对maven中scope理解

OSC屠夫
 OSC屠夫
发布于 2015/08/26 15:30
字数 377
阅读 229
收藏 2
点赞 0
评论 0

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屠夫
粉丝 11
博文 32
码字总数 8390
作品 0
浦东
程序员
Maven依赖管理

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

park ⋅ 2017/11/28 ⋅ 0

Dependency介绍

7.1 依赖的传递性 当项目A依赖于B,而B又依赖于C的时候,自然的A会依赖于C,这样Maven在建立项目A的时候,会自动加载对C的依赖。 依赖传递对版本的选择 假设A依赖于B和C,然后B依赖于D,D又依...

zh119893 ⋅ 2014/05/04 ⋅ 0

多模块项目的POM重构

在本专栏的上一篇文章POM重构之增还是删中,我们讨论了一些简单实用的POM重构技巧,包括重构的前提——持续集成,以及如何通过添加或者删除内容来提高POM的可读性和构建的稳定性。但在实际的...

wangrikui ⋅ 2015/09/25 ⋅ 0

Maven百科 - 依赖管理中的scope

在Maven的依赖管理中. 目前有6种类型的scope他们分别是,compile,provided, test,runtime,system,import 在详细介绍他们之前,首要要理解一下,maven世界中的3种classpath和2种source(resour...

Garrry ⋅ 2015/08/18 ⋅ 0

maven+jetty开发实例

最近准备离职了,等着到20号离开。所以在公司里面没有什么事情,自己研究了一下maven。以前对他的认识主要是依赖管理,而这几天的学习,对他的plugin机制影响特别深刻。特别的是jetty插件的使...

walb呀 ⋅ 2017/12/06 ⋅ 0

maven依赖总结

1.依赖元素 org.springframeworkspring-core${springframework.version}jarcompile groupId,必选,实际隶属项目 artifactId,必选,其中的模块 version必选,版本号 type可选...

lastsweetop ⋅ 2013/01/11 ⋅ 0

使用assembly plugin实现自定义打包

在上一篇文章中,讨论到在对maven的机制不熟悉的情况下,为了实现自己需要的打包格式而使用maven ant task以maven +ant的方式来实现非标准打包,而现在要介绍的是maven中针对打包任务而提供的...

squanchao ⋅ 2015/10/17 ⋅ 0

maven系列学习之二:maven初体验-简单使用maven进行测试,编译、打包和运行

1、编译测试 <dependency> …… <scope>test</scope> </dependency> Scope:依赖范围。若依赖范围为test则表示该依赖只对测试有效。如果不声明依赖范围,那么默认值为compile,表示该依赖对主...

逸风如梦 ⋅ 2014/03/12 ⋅ 0

maven依赖总结

1.依赖元素 groupId,必选,实际隶属项目 artifactId,必选,其中的模块 version必选,版本号 type可选,依赖类型,默认jar scope可选,依赖范围,默认compile optional可选,标记依赖是否可选...

dmrs ⋅ 2015/10/15 ⋅ 0

Maven实战(二)构建简单Maven项目

上一节讲了maven的安装和配置,这一节我们来学习一下创建一个简单的Maven项目 1. 用Maven 命令创建一个简单的Maven项目 在cmd中运行如下命令: mvn archetype:generate -DgroupId=com.mycom...

囚兔 ⋅ 2013/12/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(十)JavaScript的DOM基础

JavaScript零基础入门——(十)JavaScript的DOM基础 欢迎大家回到我们的JavaScript零基础入门,上一节课,我们了解了JavaScript中的函数,这一节课,我们来了解一下JavaScript的DOM。 第一节...

JandenMa ⋅ 51分钟前 ⋅ 0

Spring mvc DispatchServlet 实现原理

在Spring中, ContextLoaderListener只是辅助类,在web 容器启动的时候查找并创建WebApplicationContext对象,通过该对象进行加载spring的配置文件。而真正的逻辑实现其实是在DispatcherSer...

轨迹_ ⋅ 今天 ⋅ 0

Weex起步

本教程假设你已经在你的本地环境安装了node 其实weex起步教程在 https://github.com/lilugirl/incubator-weex 项目说明文件中都已经有了,但为了有些同学看到英文秒变文盲,所以这里我重新写...

lilugirl ⋅ 今天 ⋅ 0

Jenkins实践1 之安装

1 下载 http://mirrors.jenkins.io/war/latest/jenkins.war 2 启动 java -jar jenkins.war 前提:安装jdk并配置环境变量 启动结果节选: ************************************************......

晨猫 ⋅ 今天 ⋅ 0

组合数学 1-2000 中,能被6或10整除的数的个数

1--2000 中,能被6或10整除的数的个数 利用集合的性质 能被6整除的个数 2000/6 = 333 能被10整除的个数 2000/10 = 200 能被6和10整除的个数 2000/30 = 66 能被6或10整除的个数 333+200-66 =...

阿豪boy ⋅ 今天 ⋅ 0

一篇文章学懂Shell脚本

Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。 Shell可以直接使用在win/Unix/Linux上面,并且可以调用...

Jake_xun ⋅ 今天 ⋅ 0

大数据工程师需要精通算法吗,要达到一个什么程度呢?

机器学习是人工智能的一个重要分支,而机器学习下最重要的就是算法,本文讲述归纳了入门级的几个机器学习算法,加大数据学习群:716581014一起加入AI技术大本营。 1、监督学习算法 这个算法由...

董黎明 ⋅ 今天 ⋅ 0

Kylin 对维度表的的要求

1.要具有数据一致性,主键值必须是唯一的;Kylin 会进行检查,如果有两行的主键值相同则会报错。 2.维度表越小越好,因为 Kylin 会将维度表加载到内存中供查询;过大的表不适合作为维度表,默...

无精疯 ⋅ 今天 ⋅ 0

58到家数据库30条军规解读

军规适用场景:并发量大、数据量大的互联网业务 军规:介绍内容 解读:讲解原因,解读比军规更重要 一、基础规范 (1)必须使用InnoDB存储引擎 解读:支持事务、行级锁、并发性能更好、CPU及...

kim_o ⋅ 今天 ⋅ 0

代码注释中顺序更改 文件读写换行

`package ssh; import com.xxx.common.log.LogFactory; import com.xxx.common.log.LoggerUtil; import org.apache.commons.lang3.StringUtils; import java.io.*; public class DirErgodic ......

林伟琨 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部