美文网首页
Maven scope

Maven scope

作者: wMeSlAx767 | 来源:发表于2019-07-11 22:01 被阅读0次

说在最前面:理解事物需要看清它的边界。

dependency中的scope是用来指定依赖包的使用范围。

那么依赖包会在用在哪些地方呢?

  • 编译时(a)
  • 测试时(b)
  • 运行时(c)

那么对于依赖包的使用会有以下组合场景:

  1. abc
  2. a
  3. b
  4. c
  5. ab
  6. bc
  7. ac

因为测试环境的特殊性,只要在编译时和运行时用到的依赖包,它都会需要,那么a、c、ac组合不存在。还剩下:

  1. abc - compile
  2. b - test
  3. ab - provided
  4. bc - runtime

场景

  • compile 对应普通的情况。在编译、测试、运行中都需要用到。
  • runtime 对应只在运行时用到,而编译时用不到(测试还是可以用到的)。也就是在编译源码时,不会引用这个lib,其实也就是在说,在源码中不能有调用这个lib中的代码。但是,在打包时却要将该lib放在jar包中,这样运行时就可以使用该lib。适用于在Java中直接通过反射获取lib中类的方式。
  • provided 对应lib到在运行环境提供的场景。在编译时可以需要用到lib,但是在打包时却不将其放入jar包中。

根据依赖包的来源目前有两种:maven仓库、本地。maven还提供了一种system方式,可以通过路径依赖本地的包。但是本地包的路径在服务器中可能不存在,在maven的设计中system的功能和provided一样,不能进入运行时环境。

引用:
https://blog.csdn.net/claram/article/details/77646263
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

相关文章

  • 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

    compile,缺省值,适用于所有阶段,会随着项目一起发布。compile is the default scop...

  • Maven scope

    说在最前面:理解事物需要看清它的边界。 dependency中的scope是用来指定依赖包的使用范围。 那么依赖包...

  • maven scope

    1)详解 对于scope=compile的情况(默认scope),也就是说这个项目在编译,测试,运行阶段都需要这个...

  • Maven Scope

    Maven Scope就是用来控制依赖和三种classpath(编译classpath,测试classpath、运...

  • Maven依赖中scope的含义

    Maven依赖中scope的含义 整理一下Maven中Scope的详细作用,都是抄的别人内容整理了一下。参考:ht...

  • Maven依赖中scope的含义

    Maven依赖中scope的含义 整理一下Maven中Scope的详细作用,都是抄的别人内容整理了一下。参考:ht...

  • Maven的配置、Spring初识

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

网友评论

      本文标题:Maven scope

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