我有一台同时安装了JDK和JRE 6和7的Jenkins服务器。
除了依赖1.7的项目外,所有项目均基于1.6。
我已经将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项目的兼容性?
非常感谢Atanas
您还需要使用Java 7运行surefire测试。默认情况下,surefire将使用与运行maven-Java6相同的jvm。
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.13</version> <configuration> ... <jvm>${env.JAVA_HOME_7}/bin/java</jvm> </configuration> </plugin> </plugins>