今天终于把遇到的intellij idea使用maven管理依赖包找不找不到符号类 Controller的问题。
我们都知道,类 Controller注解是在org.springframework.stereotype下面也就是spring-context这个jar包下面。
但是看项目中的外部library又有这有包。
奇诡的是编译总是报错。仔细看一下pom.xml终于找到端倪了,
原来在spring-context这个依赖包多加了一结点runtime
把这个去掉之后,菜单View=>tools windows=>maven projects在窗口中点击第一个图标(reimport all maven projects)
报错的问题就解决了。
原来Scope在maven中有特殊作用,特别要注意:
maven依赖关系中Scope的作用
Dependency Scope
在POM 4中,中还引入了,它主要管理依赖的部署。目前可以使用5个值:
* compile,缺省值,适用于所有阶段,会随着项目一起发布。
* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
* runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
* test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
* system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。