转:http://blog.csdn.net/babys/article/details/41629855
本地环境是JDK1.7,服务器是JDK1.6,将本地的多模块项目打包放到服务器的Tomcat中报
Unsupported major.minor version 51.0
错误,网上搜索得知这个现象是因为使用了高版本的Compile Level 导致,但是我由于粗心一直没有解决这个问题,因为我的项目是:项目:
util子项目(jar)。
service子项目(jar)。
web子项目(war)。
我的POM.xml中web,service都有一下的配置
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- <showWarnings>true</showWarnings>
- </configuration>
- </plugin>
- </plugins>
- </build>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
</plugins>
</build>
但是util却没有这个配置。导致一直是这个错误。后面一个一个检查时才发现。
而在这个过程中总结一下:
1.这个错误就是你本地的编译比运行的JDK版本高。多模块项目一定要记得所有的子项目都要有相应的编译配置。要么继承一个父配置,要么每个都配置。不配置的话,就会是安装JDK的版本进行编译。
2.在设置好相应的配置后,记得打包时记得是mvn clean install ,主要是不要忘记进行一个clean操作,避免原来编译的class又被打包了。那样还是会出现这个错误的。
ps:-source 1.3 中不支持泛型(请使用 -source 5 或更高版本以启用泛型)也是因为安装的是JDK1.6但没有设置以上的1.5版本出现的。