当前位置: 首页 > article >正文

maven <scope>compile</scope>作用

在 Maven 项目中, 元素用于定义依赖项的作用范围。 元素可以有多个值,每个值表示不同的作用范围。其中,scope compile scope 是默认的作用范围,表示该依赖项在编译、测试和运行时都需要。

scope compile scope 的含义

1、编译时依赖:

当您在项目中声明了一个依赖项并指定了 compile,这意味着该依赖项在编译项目的源代码时是必需的。Maven 会在编译阶段将该依赖项包含在类路径中。

2、测试时依赖:

该依赖项在运行测试时也是必需的。Maven 会在运行测试时将该依赖项包含在类路径中。

3、运行时依赖:

该依赖项在项目运行时也是必需的。Maven 会在打包和部署项目时将该依赖项包含在最终的包中(例如 JAR、WAR 文件)。

示例

假设您有一个 Maven 项目,需要使用 jackson-databind 库来处理 JSON 数据。您可以在 pom.xml 文件中这样声明依赖项:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.13.0</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

在这个例子中,jackson-databind 库将在编译、测试和运行时都被包含在类路径中。

其他常见的 scope 值

除了 compile,Maven 还支持其他几个作用范围:

test:依赖项仅在测试编译和执行阶段有效。不会被打包到最终的发布包中。
xml
深色版本

<scope>test</scope>

provided:依赖项在编译和测试时需要,但在运行时由容器或 JDK 提供。例如,Servlet API。
xml
深色版本

<scope>provided</scope>

runtime:依赖项在运行时需要,但在编译时不需要。例如,JDBC 驱动。

<scope>runtime</scope>

system:依赖项必须显式提供路径,类似于 provided,但路径是固定的。

<scope>system</scope>
<systemPath>${project.basedir}/lib/some-jar.jar</systemPath>

import:仅在 中使用,用于导入其他 POM 文件中的依赖管理配置。

<scope>import</scope>

总结
scope compile scope 是 Maven 中默认的依赖作用范围,表示该依赖项在编译、测试和运行时都是必需的。理解不同作用范围的意义和用途,可以帮助您更好地管理和优化项目的依赖关系。


http://www.kler.cn/a/417172.html

相关文章:

  • 动手学图神经网络(12):MovieLens上的链接回归
  • PostGIS:使用shp2pgsql、pgsql2shp、OGR2OGR函数进行数据导入、导出
  • Golang的引用类型和指针
  • STM32的HAL库开发---高级定时器---输出比较模式实验
  • Baumer工业相机堡盟相机的相机传感器芯片清洁指南
  • Baklib赋能数字内容体验个性化推荐提升用户体验的未来之路
  • 关于函数式接口和编程的解析和案例实战
  • LeetCode 热题 100_轮转数组(15_189_中等_C++)(额外数组;翻转)(void函数使用return)
  • 前端开发常用快捷键
  • AtomicIntegerFieldUpdater能否降低内存
  • HTTP 探秘之旅:从入门到未来
  • 什么是 JVM?它的主要作用是什么?
  • 【海底地震仪】的发展越来越趋向于智能化、自主化、多功能化、小型化和便携化
  • vue实现弹窗输入验证码
  • 热门金融大模型整理
  • linux tcpdump编译
  • 【NOIP提高组】回文数
  • pnpm.lock.yaml,到底是干什么的?
  • 详解PyTorch中的Sequential容器:构建与优化简单卷积神经网络
  • SSE基础配置与使用
  • ARP欺骗-断网攻击
  • 基于springboot乡村养老服务管理系统源码和论文
  • 在 Mac ARM 架构(例如 M1 或 M2 芯片)上安装 Node.js
  • AI数据分析工具(二)
  • 微服务即时通讯系统的实现(服务端)----(2)
  • 简单好用的折线图绘制!