Sonarqube 在maven目标和选项中提供JDK版本

Sonarqube 在maven目标和选项中提供JDK版本,sonarqube,sonarqube-4.5,Sonarqube,Sonarqube 4.5,我使用的是sonar 4.5.1,它与JDK 1.7及以上版本兼容。对于Jenkins中JDK1.6上的项目,我想使用JDK1.7进行声纳分析。为了在Jenkins领导下实现这一点,在maven的目标和选项中,我使用了-Dsonar.java.source=jdk1.7.0_76,但在构建过程中,似乎没有选择jdk1.7.0_76进行声纳分析。声纳分析仍在使用JDK1.6版本进行,该版本在Jenkins的JDK部分中定义。这导致了构建错误:“Java 1.6.0_26不支持插件findbugs”

我使用的是sonar 4.5.1,它与JDK 1.7及以上版本兼容。对于Jenkins中JDK1.6上的项目,我想使用JDK1.7进行声纳分析。为了在Jenkins领导下实现这一点,在maven的目标和选项中,我使用了-Dsonar.java.source=jdk1.7.0_76,但在构建过程中,似乎没有选择jdk1.7.0_76进行声纳分析。声纳分析仍在使用JDK1.6版本进行,该版本在Jenkins的JDK部分中定义。这导致了构建错误:“Java 1.6.0_26不支持插件findbugs”。我不想在后期构建操作中使用声纳,因为它会引发一些其他错误,所以我只想在maven目标和选项中提供声纳的详细信息。为什么没有选择jdk1.7.0_76?我错过了什么?是否有其他方式提供JDK1.7版本

(已编辑)
我的要求:maven分析应使用jdk 1.6,声纳分析应使用jdk 1.7及以上版本(声纳分析步骤在maven目标中提供,不使用声纳后期构建操作)
在Maven目标和选项下
清洁安装-Dmaven.test.skip=true-Dsonar.jdbc.url=jdbc:postgresql://sonardb.test.com:5555/sonar -Dsonar.host.url=-Dsonar.java.target=jdk1.8.0_40-Dsonar.java.source=jdk1.8.0_40 org.codehaus.mojo:sonar maven插件:1.0:sonar-Dsonar.branch=test
请查看下面的屏幕截图


您需要使用Java 7或更高版本运行分析。
sonar.java.source
属性只是告诉分析器您的代码与哪个java版本兼容


您可以使用Java 6(或更低版本)自由编译代码,但扫描仪(无论是SonarQube扫描仪、SonarQube scanner for Maven,…)必须使用Java 7运行。

查看您的
mvn
脚本:

# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
#   JAVA_HOME - location of a JDK home dir
#
此更改是在Maven环境级别完成的。在启动Maven之前,需要将
JAVA_HOME
环境变量设置为JDK版本1.7的位置

我猜您使用的是
executeshell
post-build步骤。如果您使用的是
bash
,只需在Jenkins作业配置的
命令
文本区域中包含
mvn
命令的行之前键入
JAVA_HOME=“path to your JDK 1.7 HOME”
,如下所示:


尽管这是一个老生常谈的问题,但仍能为他人的利益提供答案:

如果您进入作业的“配置”页面,并单击Sonar插件的“前进”按钮,您将有一个选项选择JDK,与下面列出的相同,选择JDK 7,该JDK 7应该已经为您的Jenkins配置(为此,您可以去管理Jenkins):


我这里没有使用声纳跑步器。正如我在邮件中提到的,我知道应该使用Java7或更高版本进行分析,但正确的方法(语法)是什么在maven中提供我提到的目标和选项在构建过程中是不被接受的。您可能需要在分析之前和之后立即更新$JAVA_HOME。请找到编辑后的问题,并添加屏幕截图。如果您想使用备用jdk运行分析,您必须使用post步骤!您的意思是说这个参数不起作用:-Dsonar.java.target=jdk1.8.0_40-Dsonar.java.source=jdk1.8.0_40(如果在目标和选项中提供的话)?请参阅。如果您需要使用备用JDK版本运行SQ(这是您的情况,因为您的代码需要使用JDK 1.6构建,SQ需要JDK1.7+),那么您必须使用此备用JDK版本在备用流程中运行Maven,以便使用预期的JDK分析代码。这可以在Jenkins中使用Jenkins的SQ插件完成,或者使用我的答案中描述的
执行shell
post步骤。我无法将您的答案与我的问题联系起来。当声纳分析已经在目标和选项中进行时,步骤后如何帮助?在maven分析之后和sonar分析之前,我们需要一些语法来选择不同版本的jdk?此外,我们在Jenkins配置页面中只有权限,不能对文件进行编码,因此我请求您提供可在Jenkins上使用的解决方案。我们已经肯定有SQ插件为詹金斯。