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
risposta
È 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.
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:
, per favore trova la domanda modificata con screenshot aggiunti. –
Se si desidera eseguire analisi utilizzando un jdk alternativo, è necessario utilizzare un passaggio post! – Kraal
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? –
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):
- 1. Obiettivi Ignora e Maven Git
- 2. Jenkins: Come utilizzare una variabile da una shell pre-build nel Maven "Obiettivi e opzioni"
- 3. Calling obiettivi Maven da Java
- 4. Obiettivi di Maven personalizzati in IntelliJ IDEA
- 5. Pulsanti per eseguire obiettivi Maven in NetBeans
- 6. Come rinominare gli obiettivi in Maven?
- 7. Come verificare la versione JDK in Oracle?
- 8. JDK, JRE, Java: Confusione versione!
- 9. Passa a una nuova versione di JDK?
- 10. Differenza tra Maven Costruire e installare Maven
- 11. versione 6.0 (6A313) crash quando rinfrescante profili di fornitura
- 12. Maven: modifica le proprietà della versione in pom.xml
- 13. Propagazione di versione in Maven
- 14. Specifica JDK per Maven per utilizzare
- 15. JDK tools.jar come dipendenza di maven
- 16. utilizzando obiettivi makefile per impostare le opzioni di costruzione
- 17. IntelliJ progetto di importazioni da POM usando sbagliato JDK versione
- 18. dependance maven senza versione
- 19. Differenza tra jdk 1.6 e jdk 1.7?
- 20. Maven: determina l'ordine di diversi obiettivi plug-in nella stessa fase
- 21. Utilizzo del percorso classe "fornito" negli obiettivi tomcat7-maven-plug
- 22. Come specificare la versione JDK in Android Studio?
- 23. Serializzare l'oggetto in jdk 1.5 e deserializzarlo jdk 1.6
- 24. Qual è la conseguenza della mancata versione del plugin Maven?
- 25. UISegmentedControl e aggiunta di obiettivi
- 26. Fornitura di NumPy argomenti site.cfg al pip
- 27. Come eseguire il debug della sorgente JDK
- 28. versione Maven dependencyManagement ignorato in dipendenze transitive
- 29. Impostazione JDK in Eclipse
- 30. Obiettivi opzionali in Cmake
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. –
Potrebbe essere necessario aggiornare $ JAVA_HOME appena prima e subito dopo l'analisi –