异常问题描述:

初学Maven,新建了一个基于Web骨架的Web项目,jar 包也导好了,作用域也设置正确了,Tomcat也正常运行了,可是就是说编译错误。

问题原因

由于自己本机装的是tomcat8.5,Maven集成的插件tomcat是6的版本,而本机的jdk是1.8。所以问题出在1.8的jdk并不支持tomcat6,所以需要将tomcat版本换至tomcat7及以上。

解决方案

在pom.xml(项目对象模型)中添加tomcat7的插件
添加代码如下:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.2</version>
    </plugin>
  </plugins>
</build>

在运行Maven Goal的时候一定要注意把 tomcat:run 改成 tomcat7:run,否则还是会运行默认的 Tomcat 6。

注意事项

(1) 更换了 Tomcat 插件以后,最好修改一下当前 Tomcat 的端口,否则可能会和默认的 Tomcat 冲突引发错误。

<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
  <configuration>
    <port>8888</port>
  </configuration>
</plugin>

(2) 经过测试,Tomcat 7 插件 2.1版本(Tomcat/7.0.37)、2.0版本(Tomcat/7.0.30)、2.0-beta-1版本(Tomcat/7.0.25) 都可以兼容JDK1.8。