Maven中pom.xml中的scope讲解

Maven中pom.xml中的scope讲解一、compile:编译范围compile是默认的范围;如果没有提供一个范围,编译范围依赖在所有的classpath 中可用,同时它们也会被打包。而且这些dependency会传递到依赖的项目中。二、provided:已提供范围provided 明了dependency 由JDK或者容器提供。例如如果开发了一个web 应用,可能在编译 classpath 中需要可用的Servlet API…

大家好,又见面了,我是你们的朋友全栈君。

一、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 仓库中引用依赖)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147246.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ASP.NET和MSSQL高性能分页

    首先是存储过程,只取出我需要的那段数据,如果页数超过数据总数,自动返回最后一页的纪录:setANSI_NULLSONsetQUOTED_IDENTIFIERONGO–===========

    2021年12月20日
    44
  • 记录使用Depix过程(小白文)

    记录使用Depix过程(小白文)Tips:本文仅用做探索记录(外行+新手),不保证正确性,慎读慎参考!背景:无聊看到一个可以去除马赛克的工具,并有GitHub源码(短短几天10K+star,lsp警告????,我反正不是,没跑过Python代码,一次尝试而已)。过程为本人第一视角,漏掉的部分请自行探索。下载源码,cd到根目录,执行文档(README.d)中的Example代码。到这里,目前还不明白这行代码的意思,不过可以看到两个图片路径,都在示例代码中出现,最后一个看名字就知道,工程根目录输出一个output.png图片。猜测为执

    2022年6月29日
    123
  • vim 命令大全 / vi 命令大全

    vim 命令大全 / vi 命令大全

    2021年9月22日
    45
  • Android KitKat 4.4 Wifi移植AP模式和网络共享的调试日志

    Android KitKat 4.4 Wifi移植AP模式和网络共享的调试日志

    2022年1月1日
    54
  • 阅读书源最新2020在线导入_最最最最最好用的小说神器,全网书源免费用!

    阅读书源最新2020在线导入_最最最最最好用的小说神器,全网书源免费用!今天给大家分享的是小说软件,为了满足所有小伙伴的需求,今天安卓和苹果都安排上了,一款Android应用,一款iOS应用。两款应用都十分相似,都是可以自行添加书源的软件,几乎覆盖全网小说。阅读(Android)软件本身是没有任何资源的,如果不添加书源地址,也不能搜索到任何小说。书源添加流程:软件想要很好的使用,还需要添加书源,该软件自己有一个在线书源库,内含上千个书源地址,足够满足大家的使…

    2022年6月17日
    79
  • snmp trap服务_SNMP服务

    snmp trap服务_SNMP服务浅谈Linux中开发SNMPTrapSNMPTrap是一种标准的报告机制,广泛应用在各种网络管理软件中。本文详细介绍了SNMPTrap的基本概念,以及Linux下面net-snmp对SNMPTrap的开发与应用。1.SNMPTrap简介SNMP简单网络管理协议(SimpleNetworkManagementProtocol)是一种应用层协议,是TCP/IP协议族的一部分。它使网络设备之间能…

    2022年8月22日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号