我的问题是:测试用例在本地是绿色的,但是由于不支持的jdk版本,有些在hudson服务器上失败了。本地是ibm jdk1.6 sr4 windows,但是hudson服务器安装了ibm jdk1.6 sr9 linux。 “不支持将此Java虚拟机与Blaze Advisor一起使用,因为java.beans.Introspector的实现无法通过验证。”
我被告知Hudson服务器无法更改为其他jdk,所以我认为有什么工作可以绕过那些失败? 我可以告诉maven用特定的jdk编译项目吗?比如,使用sr4的1.6版本,而不是sr9。此外,我需要maven下载sr4作为依赖coz在服务器上没有这个版本。
我搜索时似乎很难做到这一点。那我还有什么选择呢?
感谢您的任何建议。
答案 0 :(得分:1)
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>
toolchains.xml文件添加到.m2文件夹,该文件夹指定了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>
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以在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
根据环境设置版本。