2017-08-31 1 views
0

Selon le this, Sonarqube requiert désormais un bytecode afin de vérifier correctement le code Java. J'ai eu un flux de travail Travis CI + SonarQube qui est maintenant cassé en raison de la nouvelle demande.Définition de l'analyse de SonarJava 4.12 avec Travis.CI (problèmes de bytecode)

Je n'arrive pas à configurer le nouveau flux de travail.

C'est l'erreur que je reçois:

ERROR: Error during SonarQube Scanner execution java.lang.IllegalStateException: No files nor directories matching '/home/travis/build/My_user_name/My_project_name/app/build/intermediates/classes/' at org.sonar.java.AbstractJavaClasspath.getFilesFromProperty(AbstractJavaClasspath.java:93) at org.sonar.java.JavaClasspath.init(JavaClasspath.java:49) at org.sonar.java.AbstractJavaClasspath.getElements(AbstractJavaClasspath.java:281) at org.sonar.java.SonarComponents.getJavaClasspath(SonarComponents.java:141) at org.sonar.java.JavaSquid.(JavaSquid.java:83) at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:83) at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53) at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88) at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82) at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68) at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:78) at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:179) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129) at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:261) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:256) at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:245) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129) at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:47) at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:144) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:129) at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:119) at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:116) at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60) at com.sun.proxy.$Proxy0.execute(Unknown Source) at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233) at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151) at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:110) at org.sonarsource.scanner.cli.Main.execute(Main.java:74) at org.sonarsource.scanner.cli.Main.main(Main.java:61)

Je ne sais pas où Travis stocke mes fichiers Android bytecode ou comment dire correctement sonarqube leur emplacement.

Edit: sonar-project.properties:

# must be unique in a given SonarQube instance 
sonar.projectKey=key:dev 
# sonar.branch=${branch} 
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1. 
sonar.projectName=name 
sonar.projectVersion=1.40 

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. 
# Since SonarQube 4.2, this property is optional if sonar.modules is set. 
# If not set, SonarQube starts looking for source code from the directory containing 
# the sonar-project.properties file. 
sonar.sources=app/src 

sonar.java.binaries=app/build/intermediates/classes/ 

# Encoding of the source code. Default is default system encoding 
#sonar.sourceEncoding=UTF-8 

sonar.exclusions=R.java, /build 
sonar.language=java 

sonar.junit.reportsPath=build/outputs/androidTest-results/connected/ 
+0

Veuillez [modifier] votre question pour inclure votre configuration de construction/analyse. –

+0

@ G.Ann-SonarSourceTeam done – CaptainNemo

+0

Pour un projet Android, n'utilisez-vous pas Gradle pour faire la construction? –

Répondre

0

Votre utilisation d'un fichier sonar-project.properties indique que vous essayez d'analyser avec sonarqube Scanner. Bien que ce soit la solution générique, ce n'est pas le mieux pour tous les cas. Puisque vous utilisez déjà Gradle pour construire votre projet Android, j'utiliserais le SonarQube Scanner for Gradle, qui comprendra automatiquement où se trouvent votre code d'octet et vos fichiers sources.

+0

Merci. Je l'ai essayé, mais maintenant il donne cette erreur: ERREUR: Erreur lors de l'exécution du scanner SonarQube ERREUR: Vous devez définir les propriétés obligatoires suivantes pour 'Inconnu': sonar.projectKey, sonar.sources Ceci est le build.gradle file: https://raw.githubusercontent.com/aayaffe/SailingRaceCourseManager/master/app/build.gradle – CaptainNemo

+0

Pour Gradle 2.1+, le plugin doit être "id" org.sonarqube "version" 2.5 "' –