scope标签控制依赖的可见范围和参与阶段;test仅用于测试编译,不参与主代码编译和运行,不打包;provided用于编译主代码但由外部容器提供,不打包。

test:只在测试阶段有效
声明为 <scope>test</scope> 的依赖,仅在 src/test/java 下的测试代码中可用,编译主代码(src/main/java)和运行时都不可见,也不会打进最终包里。
- 典型例子:JUnit、AssertJ、Mockito
- 如果你在 main 代码里 import junit,Maven 会直接报错——因为编译主代码时它根本不存在
- 打包时完全不包含,避免污染生产环境
provided:编译时需要,运行时由外部提供
<scope>provided</scope> 表示:这个依赖对编译主代码是必需的,但**运行时由 JDK 或容器(如 Tomcat、Servlet 容器)自带**,所以不会打进最终包里。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~