为什么Maven在没有Servlet依赖的情况下成功编译?

时间:2013-03-17 15:44:05

标签: maven servlets spring-mvc

我正在写一个spring-mvc app(并且学习spring-mvc)。我没有向pom.xml添加servlet依赖项。当我运行mvn compilemvn package时,它会成功完成。是不是就像'找不到javax.servlet.http.HttpServlet'那样抛出异常?它是如何编译的?

mvn依赖:list:

  

以下文件已解决:[INFO]
  aopalliance:aopalliance:jar:1.0:编译[INFO]
  commons-dbcp:commons-dbcp:jar:1.4:compile [INFO]
  commons-pool:commons-pool:jar:1.5.4:编译[INFO]
  log4j:log4j:jar:1.2.17:编译[INFO]
  org.codehaus.jackson:jackson-core-asl:jar:1.9.12:compile [INFO]
  org.codehaus.jackson:jackson-mapper-asl:jar:1.9.12:compile [INFO]
  org.slf4j:jcl-over-slf4j:jar:1.7.2:编译[INFO]
  org.slf4j:slf4j-api:jar:1.7.2:编译[INFO]
  org.slf4j:slf4j-log4j12:jar:1.7.2:编译[INFO]
  org.springframework:spring-aop:jar:3.2.1.RELEASE:编译[INFO]
  org.springframework:spring-beans:jar:3.2.1.RELEASE:compile [INFO]
  org.springframework:spring-context:jar:3.2.1.RELEASE:compile [INFO]
  org.springframework:spring-core:jar:3.2.1.RELEASE:compile [INFO]
  org.springframework:spring-expression:jar:3.2.1.RELEASE:compile [INFO]   org.springframework:spring-jdbc:jar:3.2.1.RELEASE:compile [INFO]
  org.springframework:spring-tx:jar:3.2.1.RELEASE:编译[INFO]
  org.springframework:spring-web:jar:3.2.1.RELEASE:compile [INFO]
  org.springframework:spring-webmvc:jar:3.2.1.RELEASE:compile [INFO]
  PostgreSQL的:在PostgreSQL:罐子:9.2-1002.jdbc4:编译

3 个答案:

答案 0 :(得分:1)

因为,Servlet Api是spring-webmvc的传递依赖。 默认情况下,Maven包含所有传递依赖项。

使用以下命令列出依赖关系&它的传递依赖

mvn dependency:tree

答案 1 :(得分:0)

因为servlet API是org.springframework:spring-webmvc的依赖项,因此是项目的传递依赖项。

答案 2 :(得分:0)

并非完全相关: 当你学习spring-mvc时,我建议只保留pom中所需的依赖关系,它会告诉你哪个jar有哪些类。

还为spring特定包配置日志记录和调试,这极大地支持了解流程或可能出错的内容。当我从春天开始时,它对我帮助很大。快乐学习:))