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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PXE及PXE启动

    PXE及PXE启动PXE(Pre-bootExecutionEnvironment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXEclient在网卡的ROM中,当计算机引导时,BIOS把PXEclient调入内存执行,并显示出命令菜单,经用户选择后,PXEclient将放置在远端的操作系统通过网络下载到本地运行。  PXE协议的成功运行需要解决以下

    2022年6月15日
    67
  • 云计算仿真框架CloudSim介绍

    云计算仿真框架CloudSim介绍幻灯片1云计算仿真框架CloudSim介绍jiangzw#ihep.ac.cn(以下为本人某次报告做的调研的PPT及其它一些实践记录,为保证清晰度,一些插入的图片较大,可在新标签页中打开)(本文基于署名2.5中国大陆许可协议发布,欢迎转载、演绎,但是必须保留本文的署名John并包含本文链接。)欢迎交流2013年04月09日

    2022年10月13日
    2
  • JS乘法口诀表(一行代码)「建议收藏」

    JS乘法口诀表(一行代码)

    2022年1月25日
    69
  • 数据库concat函数

    数据库concat函数因文件改动读到老大写的代码发现该函数所以记录一下concat用法就是将数据库不同的字段串起来比如要查询nameagesex最终想出来的结果是连起来的就可以用该函数而不用再将结果拼接eg:selectid,concat(name,sex,age)asinfofromusr;这样就会输出结果info=>小明男12该函数中间可以拼接字符用来分割eg:selectid,concat(name,”,sex,”,age)…

    2022年5月9日
    72
  • Linux中搭建Nginx环境[通俗易懂]

    Linux中搭建Nginx环境[通俗易懂]CentOs7环境中一、安装pcre依赖 1.下载 本地上传或者联网下载pcre压缩文件依赖 2. 解压pcre压缩包 命令:tar -zxvf pcre-8.37.tar.gz 3. 在解压目录下执行 ./configure 在当前目录运行configure文件 …

    2022年6月13日
    30
  • IntelliJ IDEA常用快捷键汇总

    IntelliJ IDEA常用快捷键汇总在使用IntelliJIdea的时候,使用快捷键是必不可少的。掌握一些常用的快捷键能大大提高我们的开发效率。有些快捷键可以熟练的使用,但是还有另外一些快捷键虽然很好用,但是由于因为没有形成使用习惯或者没有理解快捷键的用法,甚至之前对一些快捷键根本没有概念,导致不会去使用。对于这些快捷键,如果能够用好,编辑代码的效率必能提高一个水平。所以在此梳理出来,加强自己的使用,形成习惯。(注:有些操作的快捷键

    2022年5月15日
    53

发表回复

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

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