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

  • 相关阅读:
    SpringBoot项目启动与关闭脚本
    springboot mybatis启动初始化数据库
    springboot mybatis多数据库支持
    Tomcat配置https访问
    Oracle批量生成版本
    Oracle创建用户表空间
    OracleServiceXE服务没有了
    IDEA离线升级
    js过滤并校验XSS
    docker命令
  • 原文地址:https://www.cnblogs.com/tenghw/p/13693846.html
Copyright © 2011-2022 走看看