博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven依赖简介之依赖范围
阅读量:6263 次
发布时间:2019-06-22

本文共 1078 字,大约阅读时间需要 3 分钟。

hot3.png

    首先贴出maven依赖配置语法

spring-core

    groupId,artifactId,version就不再介绍了,这是基本坐标。

    type为依赖的类型,scope依赖的范围,optional标记依赖是否可选,exclusions用来排除传递性依赖。

    基础概念如上,今天重点理解依赖的范围。

    在maven构建的时候,会有三套classpath(就好比java的classpath)。在编译项目主代码的时候会用到一套classpath,在进行编译和测试的时候也会用到一套classpath,在真正运行的时候,也会用到一套classpath。

    依赖的范围有以下几种:compile,test,provided,runtime,system,import。

    其中system一般不推荐,因为从字面意思就可以了解到引用了系统的环境变量,所以很可能不具备可移植性。

    compile是默认的依赖范围。在没有写scope的时候,就是指定了compile范围。

    test,测试依赖范围。在我之前使用maven的时候,junit的scope就是test。

    provided,已提供的依赖范围。此依赖在编译和测试classpath有效,在运行时无效。就行servlet api,编译的时候用到了,运行的时候就不需要了。

    runtime,运行时依赖范围。此依赖在测试和运行的时候有效,但是在编译的时候无效。就像jdbc驱动,项目主代码的编译只需要提供jdk提供的jdbc驱动,只有在执行测试或者运行项目的时候才需要实现上述接口的具体jdbc驱动。

    import,导入依赖范围。(暂时没学到)

scope 编译   测试 运行 example
compile Y   Y     Y spring-core
test --      Y -- JUnit
provided Y Y -- servlet-api
runtime -- Y Y JDBC驱动实现
system Y Y -- 本地的,maven仓库之外的类库文件

 

转载于:https://my.oschina.net/u/3008297/blog/828553

你可能感兴趣的文章
Vim中的swp文件
查看>>
[iphone-objective C]去掉一段String中的HTML标签
查看>>
NSArray与NSMutableArray的区别
查看>>
Firefox 9正式发布
查看>>
ADO.NET简介
查看>>
[转]免费开源.net网上商城
查看>>
Android so减包相关
查看>>
linux shell获取用户输入
查看>>
Linux抓包工具
查看>>
js 读写Cookie
查看>>
c哈希表hashtable操作
查看>>
如何维护应用程序状态
查看>>
[Map 3D开发实战系列] Map Resource Explorer 之八--有什么用?怎么用?
查看>>
现代软件工程讲义 8 稳定阶段 (测试的计划和执行)
查看>>
Ubuntu 11.04 安装后要做的20件事情
查看>>
KlayGE 4.0中Deferred Rendering的改进(一):流水线
查看>>
6-4汉诺塔问题
查看>>
【转载】详解SQL2005/SQL2008动态生成分区脚本的方法
查看>>
构建高性能web之路------mysql读写分离实战(转)
查看>>
2012年网页设计趋势2
查看>>