2015-12-14 26 views
5

我使用的是sonar 4.5.1,它與JDK 1.7及以上版本兼容。對於Jenkins中JDK1.6上的項目,我想使用JDK1.7執行聲吶分析。爲了在Jenkins下實現這個目標和選項,我使用了-Dsonar.java.source = jdk1.7.0_76,但是在構建過程中似乎沒有選擇jdk1.7.0_76進行聲納分析。 Sonar Analysis仍在使用Jenkins中JDK部分定義的JDK 1.6版本。這會導致構建錯誤:「Java 1.6.0_26不支持插件findbugs」。我不想在後期製作操作中使用聲納,因爲它會拋出一些其他錯誤,所以我只想在maven目標和選項中提供聲納細節。爲什麼不選擇jdk1.7.0_76?我錯過了什麼?有沒有其他方式提供JDK1.7版本?


我的要求:maven分析應該使用jdk 1.6來完成,並且聲吶分析應該使用jdk 1.7和更高版本(聲吶分析步驟在maven目標中提供,並且不使用Sonar-postbuild動作)
在Maven目標下和選項
clean install -Dmaven.test.skip = true -Dsonar.jdbc.url = jdbc:postgresql://sonardb.test.com:5555/sonar -Dsonar.host.url = http://localhost:9000/sonar -Dsonar.java.target = jdk1.8.0_40 -Dsonar.java.source = jdk1.8.0_40 org.codehaus.mojo:聲納-行家-插件:1.0:聲納-Dsonar.branch =測試

請找到的截圖下面
在maven目標和選項中提供JDK版本

jdk required for maven maven goals and options

回答

0

您需要使用Java 7或更高版本運行分析。 sonar.java.source屬性簡單地告訴分析器您的代碼與哪個Java版本兼容。

你可以自由地編譯Java 6中(或更低)的代碼,但掃描器(不管是SonarQube掃描儀,掃描儀SonarQube對Maven等)必須運行與Java 7

+0

我沒有在這裏使用聲納運動員。正如我在郵件中提到的那樣,我確實知道應該使用Java 7或更高版本來完成分析,但是如何提供Maven目標和選項的正確方式(語法)正如我所提到的那樣,在構建期間不會被接受。 –

+0

您可能需要在分析前 –

1

看看你的mvn腳本:

# ---------------------------------------------------------------------------- 
# Maven2 Start Up Batch script 
# 
# Required ENV vars: 
# ------------------ 
# JAVA_HOME - location of a JDK home dir 
# 

這種變化是在你的Maven環境的級別進行。在啓動Maven之前,您需要將JAVA_HOME環境變量設置爲JDK版本1.7的位置。

我想你正在使用execute shell後生成步驟。如果您使用bash你只需要前行鍵入JAVA_HOME="path to your JDK 1.7 home"在詹金斯的工作配置的command文本區域包含您mvn命令如下:

enter image description here

+0

之前和之後更新$ JAVA_HOME,請在編輯的問題中添加屏幕截圖。 –

+0

如果您想使用備用jdk運行分析,您必須使用後續步驟! – Kraal

+0

你的意思是說這個參數不起作用:-Dsonar.java.target = jdk1.8.0_40 -Dsonar.java.source = jdk1.8.0_40如果在目標和選項中提供的話? –

0

儘管這是一個老問題仍然回答爲了其他的好處:

如果你去配置你的作業頁面並點擊Sonar插件的「Advance」按鈕,你將有一個選項可以選擇JDK與下面選擇的應該已經配置的選擇JDK 7相同對於你的詹金斯(爲此你可以去管理詹金斯):

Screen Shot of Sonar Plugin under Job configure Page