maven scope 关键字

pom scope 总结

https://blog.csdn.net/LittleFly_/article/details/79476345
https://www.jianshu.com/p/7145f01ac3ad

要了解 项目各个阶段

关键字 编译 测试 运行 打包 示例 备注
compile
test junit 测试代码的编译和执行,不会被打包,
runtime JDBC驱动
provided servlet /lombok/tomcat provided意味着打包的时候可以不用包进去,别的设施(Web Container)会提供
system 同provided,不过被依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合systemPath属性使用。不推荐使用system依赖。
import

provided 示例

lombok

    <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.16.18</version>
          <scope>provided</scope>
    </dependency>

Lombok的scope=provided,说明它只在编译阶段生效,不需要打入包中。事实正是如此,Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件。

system 示例

open-core

<dependency>
    <groupId>org.open</groupId>
    <artifactId>open-core</artifactId>
    <version>1.5</version>
    <scope>system</scope>
    <systemPath>${basedir}/WebContent/WEB-INF/lib/open-core.jar</systemPath>
</dependency>

含义:system 元素与 provided 元素类似,但是被依赖项不会从 maven 仓库中查找,而是从本地系统中获取,systemPath 元素用于制定本地系统中 jar 文件的路径。例如:

import 示例

https://www.jianshu.com/p/7145f01ac3ad
https://blog.csdn.net/mn960mn/article/details/50894022
https://blog.csdn.net/baidu_36124158/article/details/103988630

Guess you like

Origin blog.csdn.net/wei198621/article/details/120901148