问题
今天依旧像往常一样,上号,打开idea,右键运行测试springMVC代码有没有效果,结果测试几次,依然都是这个界面,无动于衷,也没有任何报错,
这是tomcat插件的代码
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>80</port> //端口
<path>/</path> //访问路径
</configuration>
</plugin>
</plugins>
解决
刚才那个界面打印出了一个“Skipping no- war project ” 意思是跳过不是“war”包的工程。当时也没在意,就一直在想为啥运行不了啊。最后在网上搜了才知道,果然是这儿出了毛病,需要把打包形式换成“war”,因为默认是"jar"
项目的打包类型:pom、jar、war
指定打包类型使用标签,它默认是jar类型。
pom:父类型都为pom类型
pom
jar:内部调用或者是作服务使用
jar
war:打包项目,用于在容器(Tomcat、Jetty等)上部署
war
所以在pom.xml文件中加入“war”就行了。
接下来又出现了一个问题“A child container failed during start”(子容器开始时启动失败)
我有上网搜了下,恍然大悟,原来是pom.xml文件中引入servlet坐标时,忘记加“ provided”
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope> //记得加,否则会跟tomcat起冲突
//因为web项目中一般使用Tomcat,而Tomcat自带的jar包中有servlet-api依赖。当我们运行Tomcat的时候,
//肯定把Tomcat依赖的jar包都导入了,而<scope>provided</scope>的作用就是让servlet-api依赖只在编译
//的时候起作用,运行的时候不起作用,避免和Tomcat自带的依赖产生冲突
</dependency>