我有一個Jenkins服務器,JDK & JRE 6和7安裝在一起。Maven/Jenkins java.lang.UnsupportedClassVersionError:不支持的major.minor版本51.0
所有的項目都建立在1.6以外,1.7是依賴的項目。
我已配置maven pom文件以使用JAVA_HOME_7環境PATH中的Java編譯器。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
**<executable>${env.JAVA_HOME_7}/bin/javac</executable>**
<fork>true</fork>
<verbose>false</verbose>
</configuration>
</plugin>
MVN在安裝過程中,我發現了以下錯誤:
java.lang.RuntimeException: There was an error in the forked process
java.lang.UnsupportedClassVersionError: : Unsupported major.minor version 51.0
我認爲這意味着服務器使用JRE 1.6。
如何將JRE 1.6與1.7保持一致,以保持與舊1.6項目和新1.7項目的兼容性?
非常感謝, 阿塔納斯
也許你正在運行一些單元或集成測試作爲構建的一部分,例如使用maven surefire或故障安全插件? ...這些也使用Java 7? (因爲Jenkins使用Java6 JVM分支進程來運行某些東西)。 – sbk 2013-02-18 14:21:07
是的,你是對的,我使用surefire插件運行junit套件,代碼有JDK 7依賴,因爲multi-catch語句不支持-source 1.6 – 2013-02-18 14:23:32
發佈回答低於 – sbk 2013-02-18 14:31:18