2015-12-14 13 views
5

Uso il sonar 4.5.1 ed è compatibile con JDK 1.7 e versioni successive. Per i progetti che si trovano su JDK1.6 in Jenkins, voglio eseguire un'analisi sonar usando JDK1.7 . Per ottenere questo risultato con Jenkins, in obiettivi e opzioni maven, sto usando -Dsonar.java.source = jdk1.7.0_76 ma durante la compilazione sembra che jdk1.7.0_76 non venga selezionato per l'analisi del sonar. Sonar Analysis è ancora in corso con la versione 1.6 di JDK che è definita nella sezione JDK di Jenkins. Ciò si traduce nell'errore di compilazione: "Il plugin findbugs non è supportato con Java 1.6.0_26". Non voglio usare il sonar nell'azione post build perché genera un altro errore, quindi desidero fornire i dettagli del sonar solo negli obiettivi e nelle opzioni. Perché jdk1.7.0_76 non viene selezionato? Cosa mi manca? C'è un altro modo per fornire la versione JDK1.7?

(Modificato)
Il mio requisito: l'analisi di maven dovrebbe essere eseguita usando jdk 1.6 e l'analisi del sonar dovrebbe essere fatta con jdk 1.7 e successivi (l'analisi dell'ecoscandaglio è prevista negli obiettivi di Maven e nessuna azione di Sonar-postbuild è usata)
sotto Maven obiettivi e opzioni
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: sonar-maven-plugin: 1.0: sonar -Dsonar.branch = test

Qui di seguito trovate le schermate
Fornitura della versione JDK in obiettivi e opzioni MAVEN

jdk required for maven maven goals and options

risposta

0

È necessario eseguire l'analisi con Java 7 o versioni successive. La proprietà sonar.java.source indica semplicemente all'analizzatore la versione di Java con cui il codice è compatibile.

Sei libero di compilare il codice con Java 6 (o inferiore), ma lo scanner (se questo è SonarQube Scanner, SonarQube Scanner per Maven, ...) deve run con Java 7.

+0

Non sto utilizzando il sonar-runner qui. Come ho accennato nella mail, so che l'analisi dovrebbe essere eseguita con Java 7 o successivo, ma qual è il modo corretto (sintassi) di fornire gli obiettivi e le opzioni di Maven come quello che ho menzionato non viene accettato durante la compilazione. –

+0

Potrebbe essere necessario aggiornare $ JAVA_HOME appena prima e subito dopo l'analisi –

1

Date un'occhiata al vostro script mvn:

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

Questo cambiamento viene fatto a livello del proprio ambiente di Maven. Prima di avviare Maven, è necessario impostare la variabile di ambiente JAVA_HOME nella posizione di JDK versione 1.7.

Immagino che tu stia utilizzando un passaggio post-build execute shell. Se stai usando bash è sufficiente digitare JAVA_HOME="path to your JDK 1.7 home" prima della riga che contiene il vostro comando mvn nell'area command testo della configurazione del processo Jenkins' come segue:

enter image description here

+0

, per favore trova la domanda modificata con screenshot aggiunti. –

+0

Se si desidera eseguire analisi utilizzando un jdk alternativo, è necessario utilizzare un passaggio post! – Kraal

+0

Intendi dire che questo parametro non funziona: -Dsonar.java.target = jdk1.8.0_40 -Dsonar.java.source = jdk1.8.0_40 se fornito in Obiettivi e Opzioni? –

0

Anche se questa è una vecchia questione ancora rispondere a beneficio di altri:

Se si va a configurare la pagina del proprio lavoro e fare clic sul pulsante "Avanzate" per il plug-in Sonar, si avrà un'opzione per selezionare JDK per lo stesso come desplyed sotto selezionare JDK 7 che dovrebbe essere già configurato per il tuo Jenkins (per questo puoi andare a Gestire Jenkins):

Screen Shot of Sonar Plugin under Job configure Page

Problemi correlati