maven 常用三个scope:compile,test,provided
compile和test作用的程序结构是不一样的。compile作用在 main目录下,test作用在test目录下
项目
src
main -- 主程序
test -- 测试程序
compile的范围依赖
对主程序(main程序)是否可见:可见。main程序可以看到compile的包。
对测试程序(test程序)是否可见):可见
是否参与打包:参与
test的范围依赖
对主程序(main程序)是否可见:不可见。
例如:在main包路径下的类,import org.junit.Test; 如果junit是test scope,会报找不到类定义的编译错误。
对测试程序是否有效:有效
是否参与打包:不参与
provided的范围依赖
在部署运行的时候被忽略掉。通常是servlet类跟容器相关的包。典型例子:servlet-api.jar
对主程序(main程序)是否可见:可见。
对测试程序(test程序)是否可见):可见
是否参与打包:不参与
是否参与部署:不参与
网友评论