在 Java 项目中,依赖范围(Dependency Scope)通常指的是 Maven 或 Gradle 等构建工具中,用来控制依赖在编译、测试、运行、打包等不同阶段的可见性和传递性的配置。以 Maven 为主(最常用),常见依赖范围如下:
compile(默认)<scope>compile</scope>
✅ 最常用,不写 scope 默认就是 compile
provided<scope>provided</scope>
⚠️ 运行时不能缺少,但不打进包里
runtime<scope>runtime</scope>
test<scope>test</scope>
systemsystemPath 指定本地路径<scope>system</scope>
<systemPath>/path/to/jar</systemPath>
import(特殊)<dependencyManagement><scope>import</scope>
| Scope | 编译 | 测试 | 运行 | 打包 | 传递 |
|---|---|---|---|---|---|
| compile | ✅ | ✅ | ✅ | ✅ | ✅ |
| provided | ✅ | ✅ | ❌ | ❌ | ❌ |
| runtime | ❌ | ✅ | ✅ | ✅ | ✅ |
| test | ❌ | ✅ | ❌ | ❌ | ❌ |
| system | ✅ | ✅ | ❌ | ❌ | ❌ |
Gradle 使用 configuration 代替 scope:
| Maven Scope | Gradle 配置 |
|---|---|
| compile | implementation |
| runtime | runtimeOnly |
| test | testImplementation |
| provided | compileOnly |
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。