maven中pom.xml中的scope讲解

转载 2018年04月16日 11:23:53

maven中pom.xml中的scope讲解

原文地址:https://www.cnblogs.com/nanyangzp/p/4813228.html

一、compile:编译范围
compile是默认的范围;如果没有提供一个范围,编译范围依赖在所有的classpath 中可用,同时它们也会被打包。而且这些dependency会传递到依赖的项目中。

 

二、provided:已提供范围
provided 明了dependency 由JDK或者容器提供。例如如果开发了一个web 应用,可能在编译 classpath 中需要可用的Servlet API 来编译一个servlet,但是你不会想要在打包好的WAR 中包含这个Servlet API;这Servlet API JAR 由你的应用服务器或者servlet容器提供。已提供范围的依赖在编译classpath (不是运行时)可用。它们不是传递性的也不会被打包。
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>

 

三、runtime:运行时范围
runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC驱动实现。

 

四、test:测试范围
test范围依赖 在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>

 

五、system:系统范围
system范围依赖与provided 类似,但是你必须显式的提供一个对于本地系统中JAR 文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven 也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个 systemPath 元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的 Maven 仓库中引用依赖)。

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

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

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

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

Maven的pom.xml中的scope节点和依赖传递

Maven工程的dependency(依赖)有一个范围属性,描述这个依赖的作用范围。有4个值,分别是: 1. test,指的是测试范围有效,编译和打包时都不会使用这个依赖 2. compile,指的是...
  • congzi0424
  • congzi0424
  • 2016-08-20 22:58:28
  • 183

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

compile:默认的scope。任何定义在compile scope下的依赖将会在所有的class paths下可用。maven工程会将其打包到最终的artifact中。如果你构建一个WAR类型的a...
  • cnweike
  • cnweike
  • 2016-08-16 15:19:35
  • 9451

浅谈maven中的scope,systempath

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

关于maven配置pom.xml的小注意事项(provided)

今天在搭建ssm环境的时候,发现子工程的servlet和jsp配置了provided,后续依赖该工程的所有项目都出不来这两个依赖,查询资料后得知,provided有两大特性 :1.provided是...
  • qq_20116099
  • qq_20116099
  • 2017-08-13 01:11:12
  • 358

Maven-pom.xml -Dependency Scope 区别

Maven-pom.xml -Dependency Scope 区别 博客分类:  java 其它   如下图报错,找错  1. 找不到类  org.springframe...
  • u010456982
  • u010456982
  • 2016-07-27 12:17:17
  • 319

Maven中pom.xml的scope

一、compile:编译范围 compile是默认的范围;如果没有提供一个范围,编译范围依赖在所有的classpath 中可用,同时它们也会被打包。而且这些dependency会传递到依赖的项目中。 ...
  • woshixuye
  • woshixuye
  • 2013-11-12 22:13:32
  • 1470

Maven依赖中的scope详解

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

Maven实战(三)--Pom.xml详解

基于官方文档,详细说明maven中pom的相关配置内容
  • oDeviloo
  • oDeviloo
  • 2016-07-27 22:54:35
  • 15680
收藏助手
不良信息举报
您举报文章:maven中pom.xml中的scope讲解
举报原因:
原因补充:

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