这个标签在maven项目中的pom.xml中,例如:
junit junit 4.12 test javax.servlet javax.servlet-api 3.1.0 provided com.ldsnet.maven pro01-maven-java 1.0-SNAPSHOT compile
常见的是这三个值:compile\test\provided,还可能是下面这几个值:system/runtime/import,
本文只笔记compile\test\provided的区别和应用场景。
一、compile
在main目录(空间)下有效
在test目录(空间)下也有效
在开发过程(时间)有效
在部署到服务器(时间)有效
二、test
在main目录(空间)下无效
在test目录(空间)下也有效
在开发过程(时间)有效
在部署到服务器(时间)无效
三、provided
在main目录(空间)下有效
在test目录(空间)下也有效
在开发过程(时间)有效
在部署到服务器(时间)无效
部署有没有效,主要是指打包到JAR包或者WAR包中,能不能使用。
总结:
1. compile是缺省设置,需要在开发的整个过程中都用到;
2. test 只是在测试过程中用到,所以不需要在main目录下使用,也不需要发布到服务器中;
3. provided意思是,这种jar包是tomcat已经提供的了,所以不需要像compile那样打包时再打进去。例如servlet-api、jsp-api,此时,如果强行改为缺省的compile,则可能会引起冲突报错。