解决:intellij maven spring mvc注解报错:找不到符号类 Controller

解决:intellij maven spring mvc注解报错:找不到符号类 Controller

26061发表于2016-09-11

今天终于把遇到的intellij idea使用maven管理依赖包找不找不到符号类 Controller的问题。

我们都知道,类 Controller注解是在org.springframework.stereotype下面也就是spring-context这个jar包下面。
但是看项目中的外部library又有这有包。

奇诡的是编译总是报错。仔细看一下pom.xml终于找到端倪了,

原来在spring-context这个依赖包多加了一结点<scope>runtime</scope>

把这个去掉之后,菜单View=>tools windows=>maven projects在窗口中点击第一个图标(reimport all maven projects)

报错的问题就解决了。

原来Scope在maven中有特殊作用,特别要注意:


maven依赖关系中Scope的作用 

Dependency Scope 

在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值: 



    * compile,缺省值,适用于所有阶段,会随着项目一起发布。 
    * provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 
    * runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。 
    * test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。 
    * system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。 


小编蓝狐