zoukankan      html  css  js  c++  java
  • Maven添加依赖时scope域介绍

    1. 当你把项目打成war包时

    eg:以下面依赖为例:

    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
    </dependency>
    

    分析:
    scope=provided,这个servlet-jar依赖(或者说 servlet-jar包),不会出现在WEB-INFO/lib目录下,即该servlet-jar依赖不会打进项目war中。
    scope=compile,这个servlet-jar依赖(或者说 servlet-jar包) ,会放到WEB-INFO/lib目录,即该servlet-jar依赖会打进项目war中。

    2.scope常用作用域

    2.1 compile,缺省默认值,在所有阶段都需要,会打进项目war包。

    2.2 runtime,运行和测试时需要,编译时不需要。如JDBC驱动,适用运行和测试阶段,会打进项目war包。

    2.3 provided,编译时需要该依赖,不会打进项目war包。

    例如, 如果你开发了一个web 应用,你可能在编译时需要Servlet.jar来编译一个servlet,但你不想在项目打成WAR的中包含这个Servlet.jar;多数情况下,这个Servlet.jar由你部署的应用服务器或容器提供。

    2.4 test,只在测试时需要,用于编译和运行测试代码。不会打进项目war包。

    2.5 system,需要显式提供依赖的jar包位置。不会打进项目war包。

    (PS:Maven不会在仓库Repository中查找它,一般搭配systempath="你需要的本地系统中jar包的路径"一起使用,这么做是为了允许基于本地对象编译,而这些本地对象是系统类库的一部分。注意该范围是不推荐使用的,你应该一直尽量去从公共或定制的 Maven 仓库中引用所需依赖)。

  • 相关阅读:
    vs code快捷键
    封装一个运动函数
    关于数组操作方式的总结
    学习html/css基础的重点笔记
    web新手——新闻列表这样写不容易出错
    AppCan——生成Web/微信App版,调用微信JSAPI支付方式,提示WeixinJSBridge内置对象undefined
    vue slot 占位符
    vue /deep/ css 不用1级1级找了
    vue 双向绑定 2个{{}}
    axios 请求接口 f12可以返回值 但是控制台打印报错
  • 原文地址:https://www.cnblogs.com/tenghw/p/13693846.html
Copyright © 2011-2022 走看看