Maven POM中的各种scope的行为总结

原创 2018年04月15日 21:52:06

compile:默认的scope。任何定义在compile scope下的依赖将会在所有的class paths下可用。maven工程会将其打包到最终的arifact中。如果你构建一个WAR类型的artefact,那么在compile scope下引用的JAR文件将会被集成到WAR文件内。


provided:这个scope假定对应的依赖会由运行这个应用的JDK或者容器来提供。最好的例子就是servlet API。任何在provided scope下定义的依赖在构建时的类路径里是可用的,但是不会被打包到最终的artifact中。如果是一个WAR的文件,servlet API在构建时的类路径里是可用的,但是并不会被打包到WAR文件中。


runtime:在runtime scope下定义的依赖只会在运行期可用,而在构建期的类路径下不可用。这些依赖将会被打包到最终的artifact中。比如你有一个基于web的应用需要在运行时访问MySQL数据库。你的代码没有任何MySQL数据库驱动的硬依赖。你的代码仅仅是基于JDBC API来编写,在构建期并不需要MySQL数据库驱动。然而,在运行期,就需要相应的驱动来操作MySQL数据库了。因此,这个驱动应该被打包到最终的artifact中。


test:只用于测试变异的依赖(比如JUnit),execution必须定义在test scope下。这些依赖不会被打包到最终的artefact中。


system:于provided scope很像。唯一的区别在于,在system scope中,你需要告诉Mave如何去找到这个依赖。如果你要引用的依赖在Maven仓库中不存在时,就可以用这个scope。不推荐使用system依赖。


import:从其它的pom文件中导入依赖设置。

关于maven项目中pom.xml依赖的scope的作用范围

我们在使用maven中的pom.xml文件经常用到dependency依赖,用于引入jar文件。其中 表明你要引入的jar是哪个组的。 表明在这个组当中唯一性。唯一的ID. 表明该jar的当前版...
  • Zebra_916
  • Zebra_916
  • 2017-04-21 11:54:39
  • 1232

maven中scope标签详解

前言最近在做itoo的pom优化工作,发现对于maven依赖管理中的scope标签还是有不明白的地方,所以今天就来总结一下这方面的知识,scope在maven的依赖管理中主要负责项目的部署maven的...
  • cd18333612683
  • cd18333612683
  • 2017-03-26 19:43:48
  • 6569

浅谈maven中的scope,systempath

scope  maven中scope的默认值是compile scope的分类 1)compile 默认是compile。compile表示被依赖项目需要参与当前项目的编译,包括后续的测试,运行周期也...
  • xiaohu_0602
  • xiaohu_0602
  • 2017-09-04 10:13:58
  • 299

使用import scope解决maven继承(单)问题

测试环境 maven 3.3.9 想必大家在做SpringBoot应用的时候,都会有如下代码: org.springframework.boot spring-boot-starter-...
  • mn960mn
  • mn960mn
  • 2016-03-15 11:28:03
  • 13891

maven dependency scope 含义作用

maven依赖关系中Scope的作用  Dependency Scope  在POM 4中,中还引入了,它主要管理依赖的部署。目前可以使用5个值:  * compile,缺省值,适用...
  • glory1234work2115
  • glory1234work2115
  • 2016-05-31 22:51:04
  • 928

maven中pom.xml 文件 的Scope的作用

Dependency Scope         中还引入了,它主要管理依赖的部署。目前可以使用5个值:      * compile,缺省值,适用于所有阶段,会随着项目一起发布。   ...
  • liu414226580
  • liu414226580
  • 2011-08-17 10:52:49
  • 11832

maven之非继承引用dependency-‘ import scope ’

一篇好文章,必须分享:http://www.infoq.com/cn/news/2011/01/xxb-maven-3-pom-refactoring,博主文章不错,可看看。 我看了看maven官网...
  • zswjob126
  • zswjob126
  • 2015-06-23 19:50:50
  • 4637

Maven依赖中的scope详解

Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了...
  • kimylrong
  • kimylrong
  • 2015-12-18 17:36:48
  • 50052

Maven依赖中的scope作用域详解

Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了...
  • u011191463
  • u011191463
  • 2017-03-29 16:40:23
  • 659

maven 打包时,总是少了一个包,后来发现是pom 文件的scope 的类型导致

MAVEN Scope使用 博客分类:  J2EE maven     在Maven的依赖管理中,经常会用到依赖的scope设置。这里整理下各种scope的使用...
  • liuao107329
  • liuao107329
  • 2016-11-03 15:14:07
  • 1799
收藏助手
不良信息举报
您举报文章:Maven POM中的各种scope的行为总结
举报原因:
原因补充:

(最多只允许输入30个字)