我的问题是:测试用例在本地是绿色的,但由于不支持的jdk版本,一些测试用例在hudson服务器上失败。本地是ibm jdk1.6linux,而hudson服务器安装的是ibm jdk1.6 sr9 sr4。“不支持将此Java虚拟机与Blaze Advisor一起使用,因为java.beans.Introspector的实现未能通过验证。”
我被告知Hudson服务器不能更改为其他jdk,所以我认为有什么解决方法可以绕过这些失败吗?我可以告诉maven用特定的jdk编译项目吗?比如,1.6版本的sr4,而不是sr9。此外,我需要maven下载sr4作为依赖性,因为服务器上没有这个版本。
在我搜索的时候,似乎很难做到这一点。那么我还能有什么选择呢?
谢谢你的建议。
发布于 2012-09-19 23:46:17
Maven应该从JAVA_HOME中指定的java开始,如果您需要使用不同的版本,我会使用工具链插件来使用指定的jdk版本运行您的构建。不过,这需要服务器上已经安装了该版本。
http://maven.apache.org/guides/mini/guide-using-toolchains.html
您将需要添加插件到您的pom,并添加一个toolchains.xml文件。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>1.5</version>
<vendor>sun</vendor>
</jdk>
</toolchains>
</configuration>
</plugin>添加到.m2文件夹的toolchains.xml文件,该文件指定jdk的安装位置。
<?xml version="1.0" encoding="UTF8"?>
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>1.5</version>
<vendor>sun</vendor>
<id>default</id>
</provides>
<configuration>
<jdkHome>/path/to/jdk/1.5</jdkHome>
</configuration>
</toolchain>发布于 2012-09-19 23:03:01
真的吗?Hudson应该支持切换JDK,我已经在Jenkins中做到了。在最坏的情况下,您可以在Hudson构建中指定JAVA_HOME环境变量。在maven中改变是不可能的,因为maven本身需要JDK来启动。
发布于 2012-09-19 23:36:52
您可以在maven-compiler-plugin中对其进行配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.4</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>您还可以使用配置文件-P根据环境设置版本。
https://stackoverflow.com/questions/12497262
复制相似问题