美文网首页
Maven: Scope标签

Maven: Scope标签

作者: 综合楼 | 来源:发表于2020-08-16 22:54 被阅读0次

Scope的分类

  • compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去

  • test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit

  • runtime:表示被依赖项目无需参与项目的编译,不过后期的测试和运行周期需要其参与。与compile相比,跳过了编译而已。例如JDBC驱动,适用运行和测试阶段

  • provided:打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是打包阶段做了exclude操作

  • system:从参与度来说,和provided相同,不过被依赖项不会从maven仓库下载,而是从本地文件系统拿。需要添加systemPath的属性来定义路径

通过maven引入的jar包,里面的类,都是已经编译好的字节码,跟runtime或者provided没关系。

简单来说,compile、runtime和provided的区别,需要在执行mvn package命令,且打包格式是war之类(而不是默认的jar)的时候才能看出来。

  • 通过compile和provided引入的jar包,里面的类,你在项目中可以直接import进来用,编译没问题,

  • 但是runtime引入的jar包中的类,项目代码里不能直接用,用了无法通过编译,只能通过反射之类的方式来用。

  • 通过compile和runtime引入的jar包,会出现在你的项目war包里,而provided引入的jar包则不会。

举个例子:再父项目中引入依赖子项目继承(scope为runtime时项目中无法引入其中的类)

image.png
image.png

相关文章

  • Maven的配置、Spring初识

    一、Maven的web项目配置 1、pom.xml文件中scope标签 scope标签位于dependency标签...

  • maven的配置与Spring初识

    一、maven的配置 1、pom.xml文件中scope标签 scope标签位于dependency标签中,主要的...

  • Maven: Scope标签

    Scope的分类 compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其...

  • maven|标签|scope

    scope的分类 1.complie(默认值)它表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参...

  • maven依赖范围,scope标签

    在maven的pom.xml文件中设置dependency标签的时候可以添加一个子标签 这个 标签可以理解为,这个...

  • Maven依赖Scope标签用法

    pom文件依赖问题 在一个maven项目中,如果存在编译需要而发布不需要的jar包,可以用scope标签,值设为p...

  • maven中scope标签详解

    前言 最近在项目开发中发现有些同学对于maven中scope的使用还不太了解,今天给大家详细介绍一下。 Maven...

  • Maven Scope 作用说明

    Scope Maven中的scope有compile、test、runtime、provided、system,其...

  • 15分钟Maven

    Maven Scope provided - Dependencies that are required for...

  • maven scope

    compile默认就是compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期...

网友评论

      本文标题:Maven: Scope标签

      本文链接:https://www.haomeiwen.com/subject/uioxjktx.html