温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java依赖范围怎么设

发布时间:2026-10-05 16:03:10 来源:亿速云 阅读:95 作者:小樊 栏目:编程语言

在 Maven 中,Java 依赖的范围是通过 <scope> 标签来设置的,常见取值如下:


一、Maven 依赖范围(scope)

1. compile(默认)

  • 生效阶段:编译、测试、运行
  • 是否打包:是
  • 示例:
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.3.20</version>
</dependency>

或显式写:

<scope>compile</scope>

2. provided

  • 生效阶段:编译、测试
  • 运行由 JDK / 容器提供
  • 是否打包:否
  • 常见场景:servlet-api、jsp-api、JDK 自带 API
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

3. runtime

  • 生效阶段:测试、运行
  • 编译不需要
  • 是否打包:是
  • 常见场景:数据库驱动
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.33</version>
    <scope>runtime</scope>
</dependency>

4. test

  • 生效阶段:仅测试
  • 是否打包:否
  • 常见场景:JUnit
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
</dependency>

5. system(不推荐)

  • 类似 provided
  • 需通过 systemPath 指定本地路径
<dependency>
    <groupId>com.xxx</groupId>
    <artifactId>xxx</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/xxx.jar</systemPath>
</dependency>

6. import(仅用于 dependencyManagement)

  • 只能用在 <dependencyManagement> 中
  • 用于导入 BOM
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.7.0</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

二、范围对照表

scope 编译 测试 运行 打包
compile ✅ ✅ ✅ ✅
provided ✅ ✅ ❌ ❌
runtime ❌ ✅ ✅ ✅
test ❌ ✅ ❌ ❌

如果你是 Gradle 项目,或者想了解 父子模块依赖范围,也可以告诉我,我可以直接给你对应写法。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手