Giter Site home page Giter Site logo

insideapp-oss / sonar-flutter Goto Github PK

View Code? Open in Web Editor NEW
407.0 14.0 75.0 1.28 MB

SonarQube plugin for Flutter / Dart

License: Other

Java 94.88% Dart 0.40% Groovy 2.54% ANTLR 2.18%
sonarqube sonarqube-plugin flutter dart coverage tests dartanalyzer technical-debt code-analysis

sonar-flutter's Introduction

CI

Technical Debt Coverage Maintainability Rating Reliability Rating Security Rating

SonarQube plugin for Flutter / Dart

A plugin to enable analysis of Dart and Flutter projects into SonarQube.

main.png

Features

Feature Supported
Size YES
Issues YES (dartanalyzer rules)
Tests YES
Coverage YES
Complexity YES
Syntax YES

The plugin is compatible with sonarQube 7.9+.

Download

Checkout the Releases page.

Changelog is available here.

Prerequisites

Flutter SDK (when analyzing a Flutter project)

Install Flutter as explained on the official documentation page.

Flutter Installation instructions

Dart

Dart is downloaded by the Flutter SDK in $FLUTTER_HOME/bin/cache/dart-sdk, however command lines are not on the path by default (dart must be on the path).

It is recommended to install Dart SDK separately as explained here : Install the Dart SDK for more reliability in a CI/CD environment.

sonar-scanner (requires Java)

Install sonar-scanner as explained in the official documentation.

Installation instructions

Installation (on the server)

  • Download the plugin binary into the $SONARQUBE_HOME/extensions/plugins directory.
  • Restart the server.

Project configuration

Create a sonar-project.properties file at the root with this content :

# Project identification
sonar.projectKey=flutter_rocks
sonar.projectName=Flutter Rocks
sonar.projectVersion=1.0
	
# Source code location.
# Path is relative to the sonar-project.properties file. Defaults to .
# Use commas to specify more than one file/folder.
# It is good practice to add pubspec.yaml to the sources as the analyzer
# may produce warnings for this file as well.
sonar.sources=lib,pubspec.yaml
sonar.tests=test

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

# Analyzer mode
# Can be:
# - DETECT (attempt to detect automatically) - default
# - MANUAL (an existing report needs to be provided)
# - FLUTTER (flutter analyze)
# - DART (dart analyze)
# - DARTANALYZER (dartanalyzer)
# sonar.dart.analyzer.mode= 

# Allows reuse of an existing analyzer report when mode is MANUAL
# sonar.dart.analyzer.report.path=

# Analyzer report output mode
# Can be:
# - DETECT (attempt to detect automatically, requires Dart SDK on the PATH) - default
# - MACHINE (a new machine readable output that is available for Dart 2.12+)
# - LEGACY (attempts to parse human readable output from dart/flutter) - default
# sonar.dart.analyzer.report.mode= 

For a complete list of available options, please refer to the SonarQube documentation.

Use existing analysis options

The plugin uses its own analysis options file. If analysis_options.yaml file already exists under the project root, it will be saved during the analysis and then restored to its initial state.

To disable this behavior and use the existinganalysis_options.yaml file instead, add the following line to sonar-project.properties file :

# Use existing options to perform dartanalyzer analysis
sonar.dart.analyzer.options.override=true

Multi-module sample

It is possible to analyze a project with multiple modules. For example a Dart generator library with an example.

sonar.projectKey=mylib
sonar.sourceEncoding=UTF-8

sonar.modules=mylib,mylib_generator,example

# mylib
mylib.sonar.sources=lib,pubspec.yaml
mylib.sonar.dart.analyzer.mode=MANUAL
mylib.sonar.dart.analyzer.report.mode=LEGACY
mylib.sonar.dart.analyzer.report.path=build/reports/analysis-results.txt

# mylib_generator
mylib_generator.sonar.sources=lib,pubspec.yaml
mylib_generator.sonar.dart.analyzer.options.override=false
mylib_generator.sonar.dart.analyzer.mode=MANUAL
mylib_generator.sonar.dart.analyzer.report.mode=MACHINE
mylib_generator.sonar.dart.analyzer.report.path=build/reports/analysis-results.txt

# example
example.sonar.sources=lib,pubspec.yaml
example.sonar.tests=test
example.sonar.exclusions=**/*/*.g.dart
example.sonar.dart.analyzer.options.override=false
example.sonar.dart.analyzer.mode=MANUAL
example.sonar.dart.analyzer.report.mode=LEGACY
example.sonar.dart.analyzer.report.path=build/reports/analysis-results.txt

Run analysis

Use the following commands from the root folder to start an analysis:

# Download dependencies 
flutter pub get 
# Run tests with User feedback (in case some test are failing)
flutter test
# Run tests without user feedback regeneration tests.output and coverage/lcov.info
flutter test --machine --coverage > tests.output 

# Run the analysis and publish to the SonarQube server
sonar-scanner

Using dart_test.yaml

Dart/Flutter support the use of a dart_test.yaml file to configure test behavior. This file can be used to configure the test output format and location. More information can be found here.

file_reporters:
  json: build/reports/test-results.json

With this, it is no longer use the --machine switch or redirect the output. It is currently not possible to configure the coverage out in this file. You may follow and upvote these related issue if interested:

Available options

All options are configurable in the SonarQube UI, via sonar-project.properties or -D parameters.

Name Options Default Description
sonar.dart.analyzer.mode DETECT|DART|FLUTTER|MANUAL|DARTANALYZER DETECT By default the plugin attempts to detect a fitting analyzer (flutter analyze or dart analyze) by parsing the environment from pubspec.yaml. This can be set to MANUAL to provide and existing report file. For compatibility with older Dart versions, this can be set to DARTANALYZER.
sonar.dart.analyzer.options.override true|false true By default any local analysis_options.yaml will be replaced for the analysis. This can be prevented by setting this to false.
sonar.dart.analyzer.report.mode DETECT|MACHINE|LEGACY DETECT The new machine readable output can be automatically detected if Dart SDK is available on the $PATH.
sonar.dart.analyzer.report.path A file path - This is required if the analyzer mode is set to MANUAL.
sonar.flutter.tests.reportPath A file path - The path to the test report JSON file.
sonar.flutter.coverage.reportPath A file path - The path to the test coverage file in LCOV format.

Contributing

Any help is welcome, and PRs will be greatly appreciated!

Please read CONTRIBUTING for more information.

License

SonarQube Plugin for Flutter / Dart is released under the GNU LGPL v3 license. See the LICENSE file for more information.

sonar-flutter's People

Contributors

blundell avatar dependabot[bot] avatar dmorawetz avatar etiennecadicidean avatar franklychilled avatar kuhnroyal avatar mreichelt avatar stephanecodes avatar sydowma avatar thiagoloureiro avatar victorgilc avatar zippy1978 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sonar-flutter's Issues

Plugin fails if dartanalyzer returns with non-zero error code

When dartanalyzer returns non-zero error codes sonar-scanner should continue to run successfully and report any found issues.

Currently, dartanalyzer handles certain types of issues by returning with codes 1-3 instead of 0. For example, when dartanalyzer finds errors, it will return with status code 3. This plugin will then fail with the following error:

INFO: Sensor Dart sensor [flutter] (done) | time=3606ms
INFO: Sensor dartanalyzer sensor [flutter]
INFO: Backup of original analysis_options.yaml file to analysis_options.yaml.sonar
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 10:00.681s
INFO: Final Memory: 103M/344M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
org.buildobjects.process.ExternalProcessFailureException: External process 'dartanalyzer [libs here]' returned 3 after 20059ms
	at org.buildobjects.process.Proc.<init>(Proc.java:124)
	at org.buildobjects.process.ProcBuilder.run(ProcBuilder.java:205)
	at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.execute(DartAnalyzerSensor.java:94)

Instead, it should properly parse the list of issues and report them, ignoring the error code.

dart --version
Dart SDK version: 2.11.0-213.1.beta (beta) (Wed Oct 14 10:49:52 2020 +0200) on "macos_x64

Some indicators are no longer reported in SonarQube 8.1+

Bugs, Vulnerabilities, Code Smells are no longer reported in SonarQube 8.1+ (values are all equal to 0)
Coverage and Duplications still work however.

Everything works without any issue from Sonar 7.5 to Sonar 8.0.

I've checked that analysis task is marked as SUCCESS in administration.
Using SonarQube 8.1+, some tasks were marked as FAILED with the following error :

java.lang.IllegalStateException: Unrecoverable indexation failures: 1 errors among 1 requests
	at org.sonar.server.es.IndexingListener$1.onFinish(IndexingListener.java:39)

but the cause was ElasticSearch required more space to work properly.

Any idea ?

Is the dart report updated?

I am using flutter2 and the scan was unsuccessful. According to the report file, I found that the report format has been updated. Is the existing regx unmatched? Has anyone else encountered this problem?

NullPointerException in FlutterTestReportParser when trying to run sonar-scanner

Hi, i got a problem running sonar scanner with flutter plugin. I'm getting a NullPointerException in the FlutterTestReportParser

15:32:43.766 ERROR: Error during SonarQube Scanner execution
java.lang.NullPointerException
	at fr.insideapp.sonarqube.flutter.tests.FlutterTestReportParser.parse(FlutterTestReportParser.java:58)
	at fr.insideapp.sonarqube.flutter.tests.FlutterTestReportParser.parse(FlutterTestReportParser.java:42)
	at fr.insideapp.sonarqube.flutter.tests.FlutterTestSensor.execute(FlutterTestSensor.java:57)

The problem is cause by an empty line in the tests.output.

flutter test --machine > tests.output

The output that i am getting has an empty line at the end of the file.

{"protocolVersion":"0.1.1","runnerVersion":null,"pid":18104,"type":"start","time":0}
{"suite":{"id":0,"platform":"vm","path":"D:\\Development\\ASD\\Project\\mobile_applicatie_submarine\\test\\widget_test.dart"},"type":"suite","time":0}
{"test":{"id":1,"name":"loading D:\\Development\\ASD\\Project\\mobile_applicatie_submarine\\test\\widget_test.dart","suiteID":0,"groupIDs":[],"metadata":{"skip":false,"skipReason":null},"line":null,"column":null,"url":null},"type":"testStart","time":2}
{"count":1,"type":"allSuites","time":4}
{"testID":1,"result":"success","skipped":false,"hidden":true,"type":"testDone","time":2820}
{"group":{"id":2,"suiteID":0,"parentID":null,"name":null,"metadata":{"skip":false,"skipReason":null},"testCount":1,"line":null,"column":null,"url":null},"type":"group","time":2826}
{"test":{"id":3,"name":"Counter increments smoke test","suiteID":0,"groupIDs":[2],"metadata":{"skip":false,"skipReason":null},"line":123,"column":5,"url":"package:flutter_test/src/widget_tester.dart","root_line":14,"root_column":3,"root_url":"file:///D:/Development/ASD/Project/mobile_applicatie_submarine/test/widget_test.dart"},"type":"testStart","time":2830}
{"testID":3,"result":"success","skipped":false,"hidden":false,"type":"testDone","time":3624}
{"success":true,"type":"done","time":3667}

When it gets parsed in the FlutterTestReportParser.parse method on line 46 it throws a NullPointerException because:

String[] lines = input.split(System.getProperty("line.separator")); // also returns the empty lines
for (int i = 0; i < lines.length; i++) {
    String line = lines[i];
    JSONObject obj = (JSONObject)JSONValue.parse(line); // is null if its an empty line

    // Suites
    if (obj.containsKey("suite")) { // if obj is null this wil result in a NullPointerException

Could you please add a null check on the "JSONObject obj" in the FlutterTestReportParser.parse?

[Question] Support multi-project setup?

Will running the analysis within a folder that contains multiple projects work?

e.g. Project structure

-src/
    -project_1/
        -test/
        -pubspec.yaml
    -project_2/
        -test/
        -pubspec.yaml
    -project_3/
        -test/
        -pubspec.yaml
    -project_foo/
        -test/
        -pubspec.yaml

Support existing and new Analyzer output formats

This is a follow-up to #47

There is now a --format=machine flag for dartanalyzer and dart analyze, both produce the same output

INFO|HINT|UNUSED_ELEMENT|/Users/.../example/lib/src/example_form.dart|8|7|4|The declaration '_foo' isn't referenced.
INFO|LINT|PREFER_SINGLE_QUOTES|/Users/.../example/lib/src/example_form.dart|8|14|2|Only use double quotes for strings containing single quotes.
  • this is good, we should probably support this as the new default and also update the readme
  • flutter analyze does not support this flag yet, but there is https://github.com/flutter/flutter/projects/106 with several issue about adding the support

Without the --format=machine flag there are 3 differently formatted outputs for flutter analyze, dart analyze and dartanalyzer, probably also depending on the version of Dart/Flutter.

There is currently no error when the format can not be parsed, it just results in zero issues in Sonar, this causes frustration and should be fixed.

FYI @mreichelt if you have any ideas

Is this plugin a solution for SAST scan in Flutter/Dart

Hi,

We are looking for a SAST scanning tool for Flutter/Dart analysis. And found this plugin here, but after integrated this plugin into our SonarQube platform, we realized that there are limited rules that can cover the security-related event.

It is possible to add more rules into the plugin so that can cover more security-related event? Or does anyone know if there is a SAST tool that can support Flutter/Dart?

image

Flutter Code Coverage broken even after importing LCOV

I've been using the following command to generate my code coverage file.

flutter test --coverage

Yet, it has suddenly started throwing this error.

ERROR: Error during parsing of the generic coverage report '/tmp/{jenkins-folder}/workspace/{project-name}/{project-name}/coverage/lcov.info'. Look at SonarQube documentation to know the expected XML format.
ERROR: Caused by: Unexpected character 'S' (code 83) in prolog; expected '<'
 at [row,col {unknown-source}]: [1,1]

Test coverage was executed successfully and it passes all tests.
Requesting you to look into this.

Thank you for the great work that you've done on the extension!

timeout after 60000ms

org.buildobjects.process.TimeoutException: Process 'dartanalyzer lib/ui/feature/login.dart lib/ui/ui_util.dart 
...bunch of file directories....
lib/ui/feature/profile.dart lib/ui/feature/user.dart' timed out after 600000ms.
	at org.buildobjects.process.Proc.killCleanUpAndThrowTimeoutException(Proc.java:169)
	at org.buildobjects.process.Proc.<init>(Proc.java:101)
	at org.buildobjects.process.ProcBuilder.run(ProcBuilder.java:205)
	at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.execute(DartAnalyzerSensor.java:94)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:386)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:382)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:351)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	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:189)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)

We are trying to implement this in our existing project, apparently we were hit by this issue which cause the pipeline fails.

Running sonar-scanner deleting project analysis_options.yaml file even after setting true in sonar-project.properties

I'm having my sonar-project.properties file as below

# Project identification
sonar.projectKey=FlutterBaseProject
sonar.projectName=FlutterBaseProject
sonar.projectVersion=1.0

# Source code location.
# Path is relative to the sonar-project.properties file. Defaults to .
# Use commas to specify more than one folder.
sonar.sources=lib
#sonar.tests=test

# Encoding of the source code. Default is default system encoding.
sonar.sourceEncoding=UTF-8
sonar.host.url=http://localhost:9000
sonar.login=71e0152e13348d339fa60199d22892f6cea23aa3

# Use existing options defined under root project to perform dartanalyzer analysis
sonar.dart.analysis.useExistingOptions=true

I've installed sonar server on my local system and configured, and when I ran sonar-scanner it delete my project analysis file and also ends in empty analysis for project at the end. See below logs,

eProject % sonar-scanner -X
20:23:15.868 INFO: Scanner configuration file: /Users/sunflowerlab/Documents/sonar-scanner-4.4.0.2170/conf/sonar-scanner.properties
20:23:15.870 INFO: Project root configuration file: /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/sonar-project.properties
20:23:15.893 INFO: SonarScanner 4.4.0.2170
20:23:15.893 INFO: Java 11.0.3 AdoptOpenJDK (64-bit)
20:23:15.893 INFO: Mac OS X 10.15.4 x86_64
20:23:16.000 DEBUG: keyStore is : 
20:23:16.000 DEBUG: keyStore type is : pkcs12
20:23:16.000 DEBUG: keyStore provider is : 
20:23:16.000 DEBUG: init keystore
20:23:16.000 DEBUG: init keymanager of type SunX509
20:23:16.092 DEBUG: Create: /Users/sunflowerlab/.sonar/cache
20:23:16.093 INFO: User cache: /Users/sunflowerlab/.sonar/cache
20:23:16.093 DEBUG: Create: /Users/sunflowerlab/.sonar/cache/_tmp
20:23:16.095 DEBUG: Extract sonar-scanner-api-batch in temp...
20:23:16.098 DEBUG: Get bootstrap index...
20:23:16.098 DEBUG: Download: http://localhost:9000/batch/index
20:23:16.143 DEBUG: Get bootstrap completed
20:23:16.146 DEBUG: Create isolated classloader...
20:23:16.153 DEBUG: Start temp cleaning...
20:23:16.157 DEBUG: Temp cleaning done
20:23:16.157 INFO: Scanner configuration file: /Users/sunflowerlab/Documents/sonar-scanner-4.4.0.2170/conf/sonar-scanner.properties
20:23:16.157 INFO: Project root configuration file: /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/sonar-project.properties
20:23:16.158 DEBUG: Execution getVersion
20:23:16.167 INFO: Analyzing on SonarQube server 8.4.1
20:23:16.167 INFO: Default locale: "en_US", source code encoding: "UTF-8"
20:23:16.168 DEBUG: Work directory: /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.scannerwork
20:23:16.168 DEBUG: Execution execute
20:23:16.340 DEBUG: Community 8.4.1.35646
20:23:16.424 INFO: Load global settings
20:23:16.447 DEBUG: GET 200 http://localhost:9000/api/settings/values.protobuf | time=22ms
20:23:16.467 INFO: Load global settings (done) | time=43ms
20:23:16.468 INFO: Server id: BF41A1F2-AXSW4mbuwED5NPd3L9Ob
20:23:16.470 INFO: User cache: /Users/sunflowerlab/.sonar/cache
20:23:16.473 INFO: Load/download plugins
20:23:16.473 INFO: Load plugins index
20:23:16.478 DEBUG: GET 200 http://localhost:9000/api/plugins/installed | time=5ms
20:23:16.506 INFO: Load plugins index (done) | time=33ms
20:23:16.558 INFO: Load/download plugins (done) | time=85ms
20:23:16.612 DEBUG: Plugins:
20:23:16.612 DEBUG:   * Python Code Quality and Security 2.13.0.7236 (python)
20:23:16.612 DEBUG:   * SonarCSS 1.2.0.1325 (cssfamily)
20:23:16.612 DEBUG:   * JaCoCo 1.1.0.898 (jacoco)
20:23:16.613 DEBUG:   * SonarGo 1.6.0.719 (go)
20:23:16.613 DEBUG:   * SonarKotlin 1.5.0.315 (kotlin)
20:23:16.613 DEBUG:   * Svn 1.10.0.1917 (scmsvn)
20:23:16.613 DEBUG:   * SonarJS 6.2.1.12157 (javascript)
20:23:16.613 DEBUG:   * SonarRuby 1.5.0.315 (ruby)
20:23:16.613 DEBUG:   * SonarScala 1.5.0.315 (sonarscala)
20:23:16.613 DEBUG:   * C# Code Quality and Security 8.9.0.19135 (csharp)
20:23:16.613 DEBUG:   * Flutter 0.3.1 (flutter)
20:23:16.613 DEBUG:   * Java Code Quality and Security 6.5.1.22586 (java)
20:23:16.613 DEBUG:   * SonarHTML 3.2.0.2082 (web)
20:23:16.613 DEBUG:   * Git 1.12.0.2034 (scmgit)
20:23:16.613 DEBUG:   * SonarFlex 2.5.1.1831 (flex)
20:23:16.613 DEBUG:   * SonarXML 2.0.1.2020 (xml)
20:23:16.613 DEBUG:   * PHP Code Quality and Security 3.5.0.5655 (php)
20:23:16.613 DEBUG:   * SonarTS 2.1.0.4359 (typescript)
20:23:16.613 DEBUG:   * VB.NET Code Quality and Security 8.9.0.19135 (vbnet)
20:23:22.049 INFO: Process project properties
20:23:22.055 INFO: Process project properties (done) | time=6ms
20:23:22.055 INFO: Execute project builders
20:23:22.055 DEBUG: Execute project builder: org.sonar.plugins.csharp.CSharpGlobalProtobufFileProcessor
20:23:22.057 DEBUG: Execute project builder: org.sonar.plugins.vbnet.VbNetGlobalProtobufFileProcessor
20:23:22.058 INFO: Execute project builders (done) | time=3ms
20:23:22.062 INFO: Project key: FlutterBaseProject
20:23:22.062 INFO: Base dir: /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject
20:23:22.062 INFO: Working dir: /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.scannerwork
20:23:22.062 DEBUG: Project global encoding: UTF-8, default locale: en_US
20:23:22.064 DEBUG: Creating module hierarchy
20:23:22.065 DEBUG:   Init module 'FlutterBaseProject'
20:23:22.066 DEBUG:     Base dir: /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject
20:23:22.066 DEBUG:     Working dir: /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.scannerwork
20:23:22.066 DEBUG:     Module global encoding: UTF-8, default locale: en_US
20:23:22.127 INFO: Load project settings for component key: 'FlutterBaseProject'
20:23:22.136 DEBUG: GET 200 http://localhost:9000/api/settings/values.protobuf?component=FlutterBaseProject | time=9ms
20:23:22.137 INFO: Load project settings for component key: 'FlutterBaseProject' (done) | time=10ms
20:23:22.204 DEBUG: Available languages:
20:23:22.204 DEBUG:   * Python => "py"
20:23:22.204 DEBUG:   * CSS => "css"
20:23:22.204 DEBUG:   * Go => "go"
20:23:22.204 DEBUG:   * Kotlin => "kotlin"
20:23:22.205 DEBUG:   * JavaScript => "js"
20:23:22.205 DEBUG:   * TypeScript => "ts"
20:23:22.205 DEBUG:   * Ruby => "ruby"
20:23:22.205 DEBUG:   * Scala => "scala"
20:23:22.205 DEBUG:   * C# => "cs"
20:23:22.205 DEBUG:   * Dart => "dart"
20:23:22.205 DEBUG:   * Java => "java"
20:23:22.205 DEBUG:   * HTML => "web"
20:23:22.205 DEBUG:   * JSP => "jsp"
20:23:22.205 DEBUG:   * Flex => "flex"
20:23:22.205 DEBUG:   * XML => "xml"
20:23:22.205 DEBUG:   * PHP => "php"
20:23:22.205 DEBUG:   * VB.NET => "vbnet"
20:23:22.210 INFO: Load quality profiles
20:23:22.235 DEBUG: GET 200 http://localhost:9000/api/qualityprofiles/search.protobuf?project=FlutterBaseProject | time=24ms
20:23:22.247 INFO: Load quality profiles (done) | time=37ms
20:23:22.259 INFO: Load active rules
20:23:22.278 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qd8wED5NPd3MAlj&ps=500&p=1 | time=18ms
20:23:22.348 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qfDwED5NPd3MAm-&ps=500&p=1 | time=20ms
20:23:22.357 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qgMwED5NPd3MAnd&ps=500&p=1 | time=6ms
20:23:22.373 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qgUwED5NPd3MAoY&ps=500&p=1 | time=16ms
20:23:22.394 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qhYwED5NPd3MAp5&ps=500&p=1 | time=18ms
20:23:22.433 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qi_wED5NPd3MAtl&ps=500&p=1 | time=36ms
20:23:22.487 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qmewED5NPd3MA6g&ps=500&p=1 | time=46ms
20:23:22.513 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qn-wED5NPd3MA9l&ps=500&p=1 | time=17ms
20:23:22.597 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qpIwED5NPd3MBF7&ps=500&p=1 | time=82ms
20:23:22.707 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW8pcwBu8fouFM7CCC&ps=500&p=1 | time=99ms
20:23:22.848 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qsXwED5NPd3MBWd&ps=500&p=1 | time=132ms
20:23:22.872 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qu8wED5NPd3MBdk&ps=500&p=1 | time=16ms
20:23:22.896 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qxiwED5NPd3MBf3&ps=500&p=1 | time=23ms
20:23:22.906 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qwQwED5NPd3MBeK&ps=500&p=1 | time=9ms
20:23:22.945 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4qy1wED5NPd3MBkT&ps=500&p=1 | time=39ms
20:23:22.984 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4q2iwED5NPd3MBr2&ps=500&p=1 | time=37ms
20:23:23.019 DEBUG: GET 200 http://localhost:9000/api/rules/search.protobuf?f=repo,name,severity,lang,internalKey,templateKey,params,actives,createdAt,updatedAt&activation=true&qprofile=AXSW4q37wED5NPd3MBv2&ps=500&p=1 | time=33ms
20:23:23.024 INFO: Load active rules (done) | time=765ms
20:23:23.072 DEBUG: Declared extensions of language Python were converted to sonar.lang.patterns.py : **/*.py
20:23:23.072 DEBUG: Declared extensions of language CSS were converted to sonar.lang.patterns.css : **/*.css,**/*.less,**/*.scss
20:23:23.072 DEBUG: Declared extensions of language Go were converted to sonar.lang.patterns.go : **/*.go
20:23:23.072 DEBUG: Declared extensions of language Kotlin were converted to sonar.lang.patterns.kotlin : **/*.kt
20:23:23.073 DEBUG: Declared extensions of language JavaScript were converted to sonar.lang.patterns.js : **/*.js,**/*.jsx,**/*.vue
20:23:23.073 DEBUG: Declared extensions of language TypeScript were converted to sonar.lang.patterns.ts : **/*.ts,**/*.tsx
20:23:23.073 DEBUG: Declared extensions of language Ruby were converted to sonar.lang.patterns.ruby : **/*.rb
20:23:23.073 DEBUG: Declared extensions of language Scala were converted to sonar.lang.patterns.scala : **/*.scala
20:23:23.073 DEBUG: Declared extensions of language C# were converted to sonar.lang.patterns.cs : **/*.cs
20:23:23.073 DEBUG: Declared extensions of language Dart were converted to sonar.lang.patterns.dart : **/*.dart
20:23:23.074 DEBUG: Declared extensions of language Java were converted to sonar.lang.patterns.java : **/*.java,**/*.jav
20:23:23.074 DEBUG: Declared extensions of language HTML were converted to sonar.lang.patterns.web : **/*.html,**/*.xhtml,**/*.cshtml,**/*.vbhtml,**/*.aspx,**/*.ascx,**/*.rhtml,**/*.erb,**/*.shtm,**/*.shtml
20:23:23.075 DEBUG: Declared extensions of language JSP were converted to sonar.lang.patterns.jsp : **/*.jsp,**/*.jspf,**/*.jspx
20:23:23.075 DEBUG: Declared extensions of language Flex were converted to sonar.lang.patterns.flex : **/*.as
20:23:23.075 DEBUG: Declared extensions of language XML were converted to sonar.lang.patterns.xml : **/*.xml,**/*.xsd,**/*.xsl
20:23:23.076 DEBUG: Declared extensions of language PHP were converted to sonar.lang.patterns.php : **/*.php,**/*.php3,**/*.php4,**/*.php5,**/*.phtml,**/*.inc
20:23:23.076 DEBUG: Declared extensions of language VB.NET were converted to sonar.lang.patterns.vbnet : **/*.vb
20:23:23.078 DEBUG: Will ignore generated code
20:23:23.079 DEBUG: Will ignore generated code
20:23:23.080 INFO: Indexing files...
20:23:23.080 INFO: Project configuration:
20:23:23.090 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, create new FileSnapshot: lastRead=2020-09-17 20:23:23.088756000, lastModified=2020-09-17 15:46:09.359612000, size=383, fileKey=(dev=1000004,ino=7638598)
20:23:23.092 DEBUG: file=null, size changed from -1 to 267 bytes
20:23:23.092 DEBUG: loading config FileBasedConfig[/Users/sunflowerlab/.config/jgit/config]
20:23:23.092 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, create new FileSnapshot: lastRead=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, size=267, fileKey=(dev=1000004,ino=7485985)
20:23:23.093 DEBUG: readpipe [git, --version],/usr/bin
20:23:23.104 DEBUG: readpipe may return 'git version 2.24.3 (Apple Git-128)'
20:23:23.104 DEBUG: remaining output:

20:23:23.105 DEBUG: readpipe [git, config, --system, --edit],/usr/bin
20:23:23.118 DEBUG: readpipe may return '/private/etc/gitconfig'
20:23:23.118 DEBUG: remaining output:

20:23:23.119 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:23.119 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:23.119 DEBUG: file=null, size changed from -1 to 0 bytes
20:23:23.119 DEBUG: loading config FileBasedConfig[/private/etc/gitconfig]
20:23:23.119 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:23.119 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:23.119 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:23.119 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:23.119 DEBUG: file=null, size changed from -1 to 68 bytes
20:23:23.119 DEBUG: loading config FileBasedConfig[/Users/sunflowerlab/.gitconfig]
20:23:23.120 DEBUG: file=/Users/sunflowerlab/.gitconfig, create new FileSnapshot: lastRead=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, size=68, fileKey=(dev=1000004,ino=1207098)
20:23:23.120 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, create new FileSnapshot: lastRead=2020-09-17 20:23:23.120348000, lastModified=2020-09-17 15:46:09.359612000, size=383, fileKey=(dev=1000004,ino=7638598)
20:23:23.121 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:23.121 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:23.122 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:23.122 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:23.122 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:23.122 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:23.122 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, isRacyClean=false, read=2020-09-17 20:23:23.120348000, lastModified=2020-09-17 15:46:09.359612000, delta=16633760736000 ns, racy<=2500000000 ns
20:23:23.122 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, is unmodified
20:23:23.138 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:23.138 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:23.138 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:23.138 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:23.138 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:23.138 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:23.139 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/index, create new FileSnapshot: lastRead=2020-09-17 20:23:23.134638000, lastModified=2020-09-17 19:21:41.802156000, size=31184, fileKey=(dev=1000004,ino=7700117)
20:23:23.143 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:23.143 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:23.144 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:23.144 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:23.144 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:23.144 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:23.144 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:23.144 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:23.145 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:23.145 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:23.145 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:23.145 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:23.149 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:23.149 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:23.149 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:23.149 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:23.150 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:23.150 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:23.150 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, isRacyClean=false, read=2020-09-17 20:23:23.120348000, lastModified=2020-09-17 15:46:09.359612000, delta=16633760736000 ns, racy<=2500000000 ns
20:23:23.150 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, is unmodified
20:23:23.152 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:23.152 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:23.153 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:23.153 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:23.153 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:23.153 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:23.153 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, isRacyClean=false, read=2020-09-17 20:23:23.120348000, lastModified=2020-09-17 15:46:09.359612000, delta=16633760736000 ns, racy<=2500000000 ns
20:23:23.153 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, is unmodified
20:23:23.161 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:23.161 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:23.161 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:23.161 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:23.161 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:23.161 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:23.162 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, isRacyClean=false, read=2020-09-17 20:23:23.120348000, lastModified=2020-09-17 15:46:09.359612000, delta=16633760736000 ns, racy<=2500000000 ns
20:23:23.162 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, is unmodified
20:23:23.166 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:23.166 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:23.166 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:23.167 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:23.167 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:23.167 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:23.167 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, isRacyClean=false, read=2020-09-17 20:23:23.120348000, lastModified=2020-09-17 15:46:09.359612000, delta=16633760736000 ns, racy<=2500000000 ns
20:23:23.167 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, is unmodified
20:23:23.226 DEBUG: 245 non excluded files in this Git repository
20:23:23.239 DEBUG: 'lib/ui/home/screen/home_page.dart' indexed with language 'dart'
20:23:23.240 DEBUG: 'lib/ui/home/screen/home_screen.dart' indexed with language 'dart'
20:23:23.242 DEBUG: 'lib/ui/home/bloc/home.dart' indexed with language 'dart'
20:23:23.243 DEBUG: 'lib/ui/home/bloc/home_state.dart' indexed with language 'dart'
20:23:23.244 DEBUG: 'lib/ui/home/bloc/home_bloc.dart' indexed with language 'dart'
20:23:23.245 DEBUG: 'lib/ui/home/bloc/home_event.dart' indexed with language 'dart'
20:23:23.246 DEBUG: 'lib/ui/splash/screen/splash_screen.dart' indexed with language 'dart'
20:23:23.248 DEBUG: 'lib/ui/forgot_password/screen/forgot_password_form.dart' indexed with language 'dart'
20:23:23.249 DEBUG: 'lib/ui/forgot_password/screen/forgot_password_page.dart' indexed with language 'dart'
20:23:23.250 DEBUG: 'lib/ui/forgot_password/model/forgot_password_request.dart' indexed with language 'dart'
20:23:23.251 DEBUG: 'lib/ui/forgot_password/model/forgot_password_request.g.dart' indexed with language 'dart'
20:23:23.253 DEBUG: 'lib/ui/forgot_password/bloc/forgot_password_bloc.dart' indexed with language 'dart'
20:23:23.255 DEBUG: 'lib/ui/forgot_password/bloc/forgot_password_event.dart' indexed with language 'dart'
20:23:23.255 DEBUG: 'lib/ui/forgot_password/bloc/forgot_password.dart' indexed with language 'dart'
20:23:23.256 DEBUG: 'lib/ui/forgot_password/bloc/forgot_password_state.dart' indexed with language 'dart'
20:23:23.257 DEBUG: 'lib/ui/profile/screen/profile_screen.dart' indexed with language 'dart'
20:23:23.258 DEBUG: 'lib/ui/profile/screen/profile_page.dart' indexed with language 'dart'
20:23:23.259 DEBUG: 'lib/ui/profile/model/user.dart' indexed with language 'dart'
20:23:23.259 DEBUG: 'lib/ui/profile/model/user.g.dart' indexed with language 'dart'
20:23:23.260 DEBUG: 'lib/ui/profile/bloc/profile.dart' indexed with language 'dart'
20:23:23.261 DEBUG: 'lib/ui/profile/bloc/profile_state.dart' indexed with language 'dart'
20:23:23.261 DEBUG: 'lib/ui/profile/bloc/profile_bloc.dart' indexed with language 'dart'
20:23:23.262 DEBUG: 'lib/ui/profile/bloc/profile_event.dart' indexed with language 'dart'
20:23:23.263 DEBUG: 'lib/ui/authentication/authentication.dart' indexed with language 'dart'
20:23:23.264 DEBUG: 'lib/ui/authentication/authentication_event.dart' indexed with language 'dart'
20:23:23.265 DEBUG: 'lib/ui/authentication/authentication_bloc.dart' indexed with language 'dart'
20:23:23.265 DEBUG: 'lib/ui/authentication/authentication_state.dart' indexed with language 'dart'
20:23:23.266 DEBUG: 'lib/ui/login/screen/login_form.dart' indexed with language 'dart'
20:23:23.267 DEBUG: 'lib/ui/login/screen/login_page.dart' indexed with language 'dart'
20:23:23.270 DEBUG: 'lib/ui/login/model/login_request.dart' indexed with language 'dart'
20:23:23.271 DEBUG: 'lib/ui/login/model/login_response.dart' indexed with language 'dart'
20:23:23.271 DEBUG: 'lib/ui/login/model/login_response.g.dart' indexed with language 'dart'
20:23:23.272 DEBUG: 'lib/ui/login/model/login_request.g.dart' indexed with language 'dart'
20:23:23.273 DEBUG: 'lib/ui/login/bloc/login_bloc.dart' indexed with language 'dart'
20:23:23.274 DEBUG: 'lib/ui/login/bloc/login.dart' indexed with language 'dart'
20:23:23.275 DEBUG: 'lib/ui/login/bloc/login_event.dart' indexed with language 'dart'
20:23:23.276 DEBUG: 'lib/ui/login/bloc/login_state.dart' indexed with language 'dart'
20:23:23.277 DEBUG: 'lib/core/index.dart' indexed with language 'dart'
20:23:23.278 DEBUG: 'lib/core/util/utilities.dart' indexed with language 'dart'
20:23:23.279 DEBUG: 'lib/core/util/built_value_converter.dart' indexed with language 'dart'
20:23:23.279 DEBUG: 'lib/core/util/logger.dart' indexed with language 'dart'
20:23:23.280 DEBUG: 'lib/core/util/validators.dart' indexed with language 'dart'
20:23:23.280 DEBUG: 'lib/core/util/util_index.dart' indexed with language 'dart'
20:23:23.281 DEBUG: 'lib/core/util/overlay_util.dart' indexed with language 'dart'
20:23:23.281 DEBUG: 'lib/core/app_config.dart' indexed with language 'dart'
20:23:23.282 DEBUG: 'lib/core/singleton.dart' indexed with language 'dart'
20:23:23.283 DEBUG: 'lib/core/webservice/api_client.chopper.dart' indexed with language 'dart'
20:23:23.283 DEBUG: 'lib/core/webservice/webservice_index.dart' indexed with language 'dart'
20:23:23.284 DEBUG: 'lib/core/webservice/mock_server.dart' indexed with language 'dart'
20:23:23.285 DEBUG: 'lib/core/webservice/api_client.dart' indexed with language 'dart'
20:23:23.286 DEBUG: 'lib/core/serializers/serializers.dart' indexed with language 'dart'
20:23:23.287 DEBUG: 'lib/core/serializers/serializers.g.dart' indexed with language 'dart'
20:23:23.288 DEBUG: 'lib/core/firebase/firebase_messaging_helper.dart' indexed with language 'dart'
20:23:23.289 DEBUG: 'lib/core/constant/index.dart' indexed with language 'dart'
20:23:23.290 DEBUG: 'lib/core/constant/size_config.dart' indexed with language 'dart'
20:23:23.290 DEBUG: 'lib/core/constant/colors.dart' indexed with language 'dart'
20:23:23.291 DEBUG: 'lib/core/constant/strings.dart' indexed with language 'dart'
20:23:23.292 DEBUG: 'lib/core/constant/text_styles.dart' indexed with language 'dart'
20:23:23.293 DEBUG: 'lib/core/constant/app_font_size.dart' indexed with language 'dart'
20:23:23.293 DEBUG: 'lib/core/constant/images.dart' indexed with language 'dart'
20:23:23.294 DEBUG: 'lib/core/network_info.dart' indexed with language 'dart'
20:23:23.294 DEBUG: 'lib/core/error/exception.dart' indexed with language 'dart'
20:23:23.295 DEBUG: 'lib/core/error/response_failure.g.dart' indexed with language 'dart'
20:23:23.296 DEBUG: 'lib/core/error/failures.dart' indexed with language 'dart'
20:23:23.297 DEBUG: 'lib/core/error/response_failure.dart' indexed with language 'dart'
20:23:23.297 DEBUG: 'lib/core/error/error_index.dart' indexed with language 'dart'
20:23:23.298 DEBUG: 'lib/core/sharepref_helper.dart' indexed with language 'dart'
20:23:23.299 DEBUG: 'lib/core/analytics_helper.dart' indexed with language 'dart'
20:23:23.300 DEBUG: 'lib/core/interceptor/exception_interceptor.dart' indexed with language 'dart'
20:23:23.301 DEBUG: 'lib/core/interceptor/header_interceptor.dart' indexed with language 'dart'
20:23:23.302 DEBUG: 'lib/core/interceptor/network_interceptor.dart' indexed with language 'dart'
20:23:23.302 DEBUG: 'lib/core/interceptor/interceptor_index.dart' indexed with language 'dart'
20:23:23.303 DEBUG: 'lib/ui_components/index.dart' indexed with language 'dart'
20:23:23.303 DEBUG: 'lib/ui_components/custom_input/custom_input.dart' indexed with language 'dart'
20:23:23.304 DEBUG: 'lib/ui_components/loading_indicator/loading_indicator.dart' indexed with language 'dart'
20:23:23.305 DEBUG: 'lib/ui_components/custom_button/custum_button.dart' indexed with language 'dart'
20:23:23.306 DEBUG: 'lib/ui_components/custom_loader/custom_loader.dart' indexed with language 'dart'
20:23:23.306 DEBUG: 'lib/ui_components/custom_textfield/custom_textfiled.dart' indexed with language 'dart'
20:23:23.307 DEBUG: 'lib/main.dart' indexed with language 'dart'
20:23:23.308 DEBUG: 'lib/injection_container.dart' indexed with language 'dart'
20:23:23.309 INFO: 80 files indexed
20:23:23.309 INFO: 0 files ignored because of scm ignore settings
20:23:23.310 INFO: Quality profile for dart: dartanalyzer
20:23:23.310 INFO: ------------- Run sensors on module FlutterBaseProject
20:23:23.388 INFO: Load metrics repository
20:23:23.394 DEBUG: GET 200 http://localhost:9000/api/metrics/search?f=name,description,direction,qualitative,custom&ps=500&p=1 | time=6ms
20:23:23.402 INFO: Load metrics repository (done) | time=14ms
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by net.sf.cglib.core.ReflectUtils$1 (file:/Users/sunflowerlab/.sonar/cache/52f5340dd05620cd162e2b9a45a57124/sonar-javascript-plugin.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of net.sf.cglib.core.ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
20:23:24.403 DEBUG: 'JavaSquidSensor' skipped because there is no related file in current project
20:23:24.404 DEBUG: 'Import external issues report' skipped because one of the required properties is missing
20:23:24.404 DEBUG: 'Python Sensor' skipped because there is no related file in current project
20:23:24.404 DEBUG: 'Cobertura Sensor for Python coverage' skipped because there is no related file in current project
20:23:24.404 DEBUG: 'PythonXUnitSensor' skipped because there is no related file in current project
20:23:24.405 DEBUG: 'PylintSensor' skipped because there is no related file in current project
20:23:24.405 DEBUG: 'PylintImportSensor' skipped because there is no related file in current project
20:23:24.406 DEBUG: 'Import of Bandit issues' skipped because there is no related file in current project
20:23:24.406 DEBUG: 'Import of Flake8 issues' skipped because there is no related file in current project
20:23:24.406 DEBUG: 'SonarCSS Metrics' skipped because there is no related file in current project
20:23:24.407 DEBUG: 'Import of stylelint issues' skipped because there is no related file in current project
20:23:24.407 DEBUG: 'SonarGo' skipped because there is no related file in current project
20:23:24.407 DEBUG: 'Go Unit Test Report' skipped because there is no related file in current project
20:23:24.408 DEBUG: 'Go Cover sensor for Go coverage' skipped because one of the required properties is missing
20:23:24.408 DEBUG: 'Import of go vet issues' skipped because there is no related file in current project
20:23:24.408 DEBUG: 'Import of Golint issues' skipped because there is no related file in current project
20:23:24.408 DEBUG: 'Import of GoMetaLinter issues' skipped because there is no related file in current project
20:23:24.409 DEBUG: 'Import of GolangCI-Lint issues' skipped because there is no related file in current project
20:23:24.409 DEBUG: 'Kotlin Sensor' skipped because there is no related file in current project
20:23:24.409 DEBUG: 'Import of detekt issues' skipped because there is no related file in current project
20:23:24.410 DEBUG: 'Import of Android Lint issues' skipped because one of the required properties is missing
20:23:24.410 DEBUG: 'JavaScript analysis' skipped because there is no related file in current project
20:23:24.411 DEBUG: 'SonarJS Coverage' skipped because there is no related file in current project
20:23:24.411 DEBUG: 'Import of ESLint issues' skipped because one of the required properties is missing
20:23:24.411 DEBUG: 'TypeScript analysis' skipped because there is no related file in current project
20:23:24.411 DEBUG: 'Import of TSLint issues' skipped because one of the required properties is missing
20:23:24.411 DEBUG: 'Ruby Sensor' skipped because there is no related file in current project
20:23:24.412 DEBUG: 'Import of RuboCop issues' skipped because one of the required properties is missing
20:23:24.412 DEBUG: 'SimpleCov Sensor for Ruby coverage' skipped because there is no related file in current project
20:23:24.412 DEBUG: 'Scala Sensor' skipped because there is no related file in current project
20:23:24.412 DEBUG: 'Scoverage sensor for Scala coverage' skipped because one of the required properties is missing
20:23:24.413 DEBUG: 'Import of Scalastyle issues' skipped because there is no related file in current project
20:23:24.413 DEBUG: 'Import of Scapegoat issues' skipped because there is no related file in current project
20:23:24.413 DEBUG: 'C# Properties' skipped because there is no related file in current project
20:23:24.414 DEBUG: 'Import of Checkstyle issues' skipped because there is no related file in current project
20:23:24.415 DEBUG: 'Import of PMD issues' skipped because one of the required properties is missing
20:23:24.415 DEBUG: 'Import of SpotBugs issues' skipped because there is no related file in current project
20:23:24.415 DEBUG: 'SurefireSensor' skipped because there is no related file in current project
20:23:24.415 DEBUG: 'Removed properties sensor' skipped because there is no related file in current project
20:23:24.416 DEBUG: 'Flex' skipped because there is no related file in current project
20:23:24.416 DEBUG: 'Flex Cobertura' skipped because there is no related file in current project
20:23:24.416 DEBUG: 'XML Sensor' skipped because there is no related file in current project
20:23:24.416 DEBUG: 'PHP sensor' skipped because there is no related file in current project
20:23:24.417 DEBUG: 'Analyzer for "php.ini" files' skipped because there is no related file in current project
20:23:24.417 DEBUG: 'SonarTS' skipped because there is no related file in current project
20:23:24.417 DEBUG: 'VB.NET Properties' skipped because there is no related file in current project
20:23:24.420 DEBUG: 'Generic Test Executions Report' skipped because one of the required properties is missing
20:23:24.420 DEBUG: 'C#' skipped because there is no related file in current project
20:23:24.420 DEBUG: 'C# Tests Coverage Report Import' skipped because there is no related file in current project
20:23:24.420 DEBUG: '[Deprecated] C# Integration Tests Coverage Report Import' skipped because there is no related file in current project
20:23:24.421 DEBUG: 'C# Unit Test Results Import' skipped because there is no related file in current project
20:23:24.421 DEBUG: 'VB.NET' skipped because there is no related file in current project
20:23:24.421 DEBUG: 'VB.NET Tests Coverage Report Import' skipped because there is no related file in current project
20:23:24.421 DEBUG: '[Deprecated] VB.NET Integration Tests Coverage Report Import' skipped because there is no related file in current project
20:23:24.421 DEBUG: 'VB.NET Unit Test Results Import' skipped because there is no related file in current project
20:23:24.421 DEBUG: Sensors : SonarCSS Rules -> JaCoCo XML Report Importer -> Dart sensor -> dartanalyzer sensor -> Flutter unit tests -> Flutter Coverage -> JavaXmlSensor -> HTML
20:23:24.422 INFO: Sensor SonarCSS Rules [cssfamily]
20:23:24.422 INFO: No CSS, PHP, HTML or VueJS files are found in the project. CSS analysis is skipped.
20:23:24.422 INFO: Sensor SonarCSS Rules [cssfamily] (done) | time=1ms
20:23:24.422 INFO: Sensor JaCoCo XML Report Importer [jacoco]
20:23:24.425 INFO: 'sonar.coverage.jacoco.xmlReportPaths' is not defined. Using default locations: target/site/jacoco/jacoco.xml,target/site/jacoco-it/jacoco.xml,build/reports/jacoco/test/jacocoTestReport.xml
20:23:24.427 INFO: No report imported, no coverage information will be imported by JaCoCo XML Report Importer
20:23:24.427 INFO: Sensor JaCoCo XML Report Importer [jacoco] (done) | time=5ms
20:23:24.427 INFO: Sensor Dart sensor [flutter]
20:23:24.578 INFO: Load project repositories
20:23:24.579 INFO: Load project repositories
20:23:24.579 INFO: Load project repositories
20:23:24.595 INFO: Load project repositories
20:23:24.600 INFO: Load project repositories
20:23:24.600 INFO: Load project repositories
20:23:24.613 INFO: Load project repositories
20:23:24.621 INFO: Load project repositories
20:23:24.623 DEBUG: GET 200 http://localhost:9000/batch/project.protobuf?key=FlutterBaseProject | time=44ms
20:23:24.624 DEBUG: GET 200 http://localhost:9000/batch/project.protobuf?key=FlutterBaseProject | time=45ms
20:23:24.624 DEBUG: GET 200 http://localhost:9000/batch/project.protobuf?key=FlutterBaseProject | time=46ms
20:23:24.630 DEBUG: GET 200 http://localhost:9000/batch/project.protobuf?key=FlutterBaseProject | time=35ms
20:23:24.633 DEBUG: GET 200 http://localhost:9000/batch/project.protobuf?key=FlutterBaseProject | time=20ms
20:23:24.634 DEBUG: GET 200 http://localhost:9000/batch/project.protobuf?key=FlutterBaseProject | time=33ms
20:23:24.634 DEBUG: GET 200 http://localhost:9000/batch/project.protobuf?key=FlutterBaseProject | time=34ms
20:23:24.634 INFO: Load project repositories (done) | time=55ms
20:23:24.634 DEBUG: 'lib/ui/login/model/login_response.dart' generated metadata with charset 'UTF-8'
20:23:24.634 INFO: Load project repositories (done) | time=56ms
20:23:24.635 INFO: Load project repositories (done) | time=22ms
20:23:24.635 DEBUG: 'lib/ui/forgot_password/bloc/forgot_password.dart' generated metadata with charset 'UTF-8'
20:23:24.635 DEBUG: 'lib/core/util/logger.dart' generated metadata with charset 'UTF-8'
20:23:24.635 INFO: Load project repositories (done) | time=35ms
20:23:24.635 DEBUG: 'lib/core/sharepref_helper.dart' generated metadata with charset 'UTF-8'
20:23:24.636 INFO: Load project repositories (done) | time=36ms
20:23:24.636 INFO: Load project repositories (done) | time=41ms
20:23:24.636 DEBUG: 'lib/core/constant/app_font_size.dart' generated metadata with charset 'UTF-8'
20:23:24.636 DEBUG: 'lib/ui/forgot_password/bloc/forgot_password_state.dart' generated metadata with charset 'UTF-8'
20:23:24.637 INFO: Load project repositories (done) | time=57ms
20:23:24.637 DEBUG: GET 200 http://localhost:9000/batch/project.protobuf?key=FlutterBaseProject | time=16ms
20:23:24.637 DEBUG: 'lib/ui/forgot_password/model/forgot_password_request.dart' generated metadata with charset 'UTF-8'
20:23:24.638 INFO: Load project repositories (done) | time=17ms
20:23:24.638 DEBUG: 'lib/core/interceptor/header_interceptor.dart' generated metadata with charset 'UTF-8'
20:23:24.651 DEBUG: Not enough content in 'lib/ui/forgot_password/bloc/forgot_password.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.656 DEBUG: Not enough content in 'lib/core/util/logger.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.657 DEBUG: Not enough content in 'lib/ui/forgot_password/model/forgot_password_request.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.672 DEBUG: 'lib/ui_components/index.dart' generated metadata with charset 'UTF-8'
20:23:24.673 DEBUG: Not enough content in 'lib/ui_components/index.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.675 DEBUG: 'lib/ui/home/bloc/home_event.dart' generated metadata with charset 'UTF-8'
20:23:24.677 DEBUG: 'lib/core/network_info.dart' generated metadata with charset 'UTF-8'
20:23:24.678 DEBUG: Not enough content in 'lib/core/network_info.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.680 DEBUG: 'lib/ui/authentication/authentication_state.dart' generated metadata with charset 'UTF-8'
20:23:24.681 DEBUG: Not enough content in 'lib/ui/authentication/authentication_state.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.682 DEBUG: 'lib/ui/profile/bloc/profile_state.dart' generated metadata with charset 'UTF-8'
20:23:24.689 DEBUG: 'lib/core/error/response_failure.dart' generated metadata with charset 'UTF-8'
20:23:24.690 DEBUG: 'lib/ui/login/model/login_request.dart' generated metadata with charset 'UTF-8'
20:23:24.719 DEBUG: 'lib/core/interceptor/exception_interceptor.dart' generated metadata with charset 'UTF-8'
20:23:24.722 DEBUG: 'lib/core/constant/index.dart' generated metadata with charset 'UTF-8'
20:23:24.723 DEBUG: Not enough content in 'lib/core/constant/index.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.731 DEBUG: 'lib/core/interceptor/network_interceptor.dart' generated metadata with charset 'UTF-8'
20:23:24.737 DEBUG: 'lib/ui/forgot_password/bloc/forgot_password_bloc.dart' generated metadata with charset 'UTF-8'
20:23:24.737 DEBUG: 'lib/ui/home/bloc/home_bloc.dart' generated metadata with charset 'UTF-8'
20:23:24.746 DEBUG: 'lib/ui/login/bloc/login_state.dart' generated metadata with charset 'UTF-8'
20:23:24.758 DEBUG: 'lib/ui/home/bloc/home_state.dart' generated metadata with charset 'UTF-8'
20:23:24.791 DEBUG: 'lib/ui/login/screen/login_form.dart' generated metadata with charset 'UTF-8'
20:23:24.795 DEBUG: 'lib/injection_container.dart' generated metadata with charset 'UTF-8'
20:23:24.800 DEBUG: 'lib/core/constant/size_config.dart' generated metadata with charset 'UTF-8'
20:23:24.803 DEBUG: 'lib/ui/forgot_password/screen/forgot_password_form.dart' generated metadata with charset 'UTF-8'
20:23:24.811 DEBUG: 'lib/core/constant/images.dart' generated metadata with charset 'UTF-8'
20:23:24.812 DEBUG: 'lib/ui/login/screen/login_page.dart' generated metadata with charset 'UTF-8'
20:23:24.812 DEBUG: Not enough content in 'lib/core/constant/images.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.836 DEBUG: 'lib/ui/profile/bloc/profile.dart' generated metadata with charset 'UTF-8'
20:23:24.836 DEBUG: Not enough content in 'lib/ui/profile/bloc/profile.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.850 DEBUG: 'lib/ui/home/screen/home_page.dart' generated metadata with charset 'UTF-8'
20:23:24.852 DEBUG: 'lib/ui/login/bloc/login_event.dart' generated metadata with charset 'UTF-8'
20:23:24.853 DEBUG: 'lib/core/index.dart' generated metadata with charset 'UTF-8'
20:23:24.857 DEBUG: 'lib/ui/profile/model/user.dart' generated metadata with charset 'UTF-8'
20:23:24.860 DEBUG: 'lib/ui/authentication/authentication_bloc.dart' generated metadata with charset 'UTF-8'
20:23:24.871 DEBUG: 'lib/ui/authentication/authentication_event.dart' generated metadata with charset 'UTF-8'
20:23:24.889 DEBUG: 'lib/ui/login/bloc/login_bloc.dart' generated metadata with charset 'UTF-8'
20:23:24.893 DEBUG: 'lib/core/serializers/serializers.dart' generated metadata with charset 'UTF-8'
20:23:24.902 DEBUG: 'lib/core/util/built_value_converter.dart' generated metadata with charset 'UTF-8'
20:23:24.909 DEBUG: 'lib/core/singleton.dart' generated metadata with charset 'UTF-8'
20:23:24.910 DEBUG: Not enough content in 'lib/core/singleton.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.913 DEBUG: 'lib/core/analytics_helper.dart' generated metadata with charset 'UTF-8'
20:23:24.913 DEBUG: Not enough content in 'lib/core/analytics_helper.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.914 DEBUG: 'lib/core/constant/strings.dart' generated metadata with charset 'UTF-8'
20:23:24.920 DEBUG: 'lib/core/webservice/api_client.chopper.dart' generated metadata with charset 'UTF-8'
20:23:24.923 DEBUG: 'lib/ui/profile/screen/profile_screen.dart' generated metadata with charset 'UTF-8'
20:23:24.955 DEBUG: 'lib/ui/login/model/login_response.g.dart' generated metadata with charset 'UTF-8'
20:23:24.955 DEBUG: 'lib/core/error/response_failure.g.dart' generated metadata with charset 'UTF-8'
20:23:24.969 DEBUG: 'lib/ui/login/model/login_request.g.dart' generated metadata with charset 'UTF-8'
20:23:24.971 DEBUG: 'lib/core/webservice/api_client.dart' generated metadata with charset 'UTF-8'
20:23:24.971 DEBUG: 'lib/core/app_config.dart' generated metadata with charset 'UTF-8'
20:23:24.975 DEBUG: 'lib/core/firebase/firebase_messaging_helper.dart' generated metadata with charset 'UTF-8'
20:23:24.997 DEBUG: 'lib/core/error/error_index.dart' generated metadata with charset 'UTF-8'
20:23:24.997 DEBUG: 'lib/ui/profile/screen/profile_page.dart' generated metadata with charset 'UTF-8'
20:23:24.998 DEBUG: Not enough content in 'lib/core/error/error_index.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:24.998 DEBUG: 'lib/core/constant/text_styles.dart' generated metadata with charset 'UTF-8'
20:23:24.999 DEBUG: 'lib/ui/forgot_password/model/forgot_password_request.g.dart' generated metadata with charset 'UTF-8'
20:23:25.001 DEBUG: 'lib/core/serializers/serializers.g.dart' generated metadata with charset 'UTF-8'
20:23:25.005 DEBUG: 'lib/ui/profile/bloc/profile_bloc.dart' generated metadata with charset 'UTF-8'
20:23:25.006 DEBUG: 'lib/ui/forgot_password/bloc/forgot_password_event.dart' generated metadata with charset 'UTF-8'
20:23:25.007 DEBUG: 'lib/core/error/exception.dart' generated metadata with charset 'UTF-8'
20:23:25.008 DEBUG: 'lib/ui/authentication/authentication.dart' generated metadata with charset 'UTF-8'
20:23:25.009 DEBUG: Not enough content in 'lib/ui/authentication/authentication.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:25.012 DEBUG: 'lib/core/interceptor/interceptor_index.dart' generated metadata with charset 'UTF-8'
20:23:25.013 DEBUG: Not enough content in 'lib/core/interceptor/interceptor_index.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:25.016 DEBUG: 'lib/core/util/util_index.dart' generated metadata with charset 'UTF-8'
20:23:25.017 DEBUG: Not enough content in 'lib/core/util/util_index.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:25.021 DEBUG: 'lib/core/webservice/webservice_index.dart' generated metadata with charset 'UTF-8'
20:23:25.022 DEBUG: Not enough content in 'lib/core/webservice/webservice_index.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:25.026 DEBUG: 'lib/core/error/failures.dart' generated metadata with charset 'UTF-8'
20:23:25.035 DEBUG: 'lib/core/webservice/mock_server.dart' generated metadata with charset 'UTF-8'
20:23:25.036 DEBUG: 'lib/core/util/utilities.dart' generated metadata with charset 'UTF-8'
20:23:25.039 DEBUG: 'lib/ui/home/bloc/home.dart' generated metadata with charset 'UTF-8'
20:23:25.040 DEBUG: Not enough content in 'lib/ui/home/bloc/home.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:25.046 DEBUG: 'lib/ui/forgot_password/screen/forgot_password_page.dart' generated metadata with charset 'UTF-8'
20:23:25.048 DEBUG: 'lib/ui_components/loading_indicator/loading_indicator.dart' generated metadata with charset 'UTF-8'
20:23:25.063 DEBUG: Not enough content in 'lib/ui_components/loading_indicator/loading_indicator.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:25.071 DEBUG: 'lib/core/util/validators.dart' generated metadata with charset 'UTF-8'
20:23:25.073 DEBUG: Not enough content in 'lib/core/util/validators.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:25.074 DEBUG: 'lib/ui/profile/bloc/profile_event.dart' generated metadata with charset 'UTF-8'
20:23:25.091 DEBUG: 'lib/core/constant/colors.dart' generated metadata with charset 'UTF-8'
20:23:25.128 DEBUG: 'lib/ui/profile/model/user.g.dart' generated metadata with charset 'UTF-8'
20:23:25.133 DEBUG: 'lib/ui/splash/screen/splash_screen.dart' generated metadata with charset 'UTF-8'
20:23:25.136 DEBUG: 'lib/ui/login/bloc/login.dart' generated metadata with charset 'UTF-8'
20:23:25.136 DEBUG: Not enough content in 'lib/ui/login/bloc/login.dart' to have CPD blocks, it will not be part of the duplication detection
20:23:25.197 DEBUG: 'lib/ui_components/custom_textfield/custom_textfiled.dart' generated metadata with charset 'UTF-8'
20:23:25.220 DEBUG: 'lib/ui_components/custom_button/custum_button.dart' generated metadata with charset 'UTF-8'
20:23:25.225 DEBUG: 'lib/ui_components/custom_input/custom_input.dart' generated metadata with charset 'UTF-8'
20:23:25.233 DEBUG: 'lib/main.dart' generated metadata with charset 'UTF-8'
20:23:25.244 DEBUG: 'lib/core/util/overlay_util.dart' generated metadata with charset 'UTF-8'
20:23:25.265 DEBUG: 'lib/ui/home/screen/home_screen.dart' generated metadata with charset 'UTF-8'
20:23:25.334 DEBUG: 'lib/ui_components/custom_loader/custom_loader.dart' generated metadata with charset 'UTF-8'
20:23:25.338 INFO: Sensor Dart sensor [flutter] (done) | time=911ms
20:23:25.338 INFO: Sensor dartanalyzer sensor [flutter]
20:23:25.338 DEBUG: Verify dart analyser...
20:23:25.346 ERROR: Could not startup process 'dartanalyzer -h'.
org.buildobjects.process.StartupException: Could not startup process 'dartanalyzer -h'.
        at org.buildobjects.process.Proc.<init>(Proc.java:91)
        at org.buildobjects.process.ProcBuilder.run(ProcBuilder.java:205)
        at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.verifyIfDartAnalyzerExists(DartAnalyzerSensor.java:254)
        at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.execute(DartAnalyzerSensor.java:68)
        at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
        at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
        at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
        at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:388)
        at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:384)
        at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:353)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
        at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:144)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
        at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)
        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        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:189)
        at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.io.IOException: Cannot run program "dartanalyzer": error=2, No such file or directory
        at java.base/java.lang.ProcessBuilder.start(Unknown Source)
        at java.base/java.lang.ProcessBuilder.start(Unknown Source)
        at java.base/java.lang.Runtime.exec(Unknown Source)
        at org.buildobjects.process.Proc.<init>(Proc.java:77)
        ... 33 common frames omitted
Caused by: java.io.IOException: error=2, No such file or directory
        at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
        at java.base/java.lang.ProcessImpl.<init>(Unknown Source)
        at java.base/java.lang.ProcessImpl.start(Unknown Source)
        ... 37 common frames omitted

20:23:25.351 INFO: Sensor dartanalyzer sensor [flutter] (done) | time=13ms
20:23:25.351 INFO: Sensor Flutter unit tests [flutter]
20:23:25.352 WARN: Test report file /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/tests.output not found
20:23:25.352 INFO: Sensor Flutter unit tests [flutter] (done) | time=1ms
20:23:25.352 INFO: Sensor Flutter Coverage [flutter]
20:23:25.352 WARN: No coverage information will be saved because LCOV file cannot be found.
20:23:25.353 WARN: Provided LCOV file path: coverage/lcov.info. Seek file with path: /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/coverage/lcov.info
20:23:25.354 INFO: Analysing [null]
20:23:25.357 INFO: Sensor Flutter Coverage [flutter] (done) | time=5ms
20:23:25.357 INFO: Sensor JavaXmlSensor [java]
20:23:25.359 INFO: Sensor JavaXmlSensor [java] (done) | time=2ms
20:23:25.359 INFO: Sensor HTML [web]
20:23:25.364 INFO: Sensor HTML [web] (done) | time=5ms
20:23:25.366 INFO: ------------- Run sensors on project
20:23:25.371 DEBUG: 'Generic Coverage Report' skipped because one of the required properties is missing
20:23:25.372 DEBUG: 'Java CPD Block Indexer' skipped because there is no related file in current project
20:23:25.372 DEBUG: Sensors : Zero Coverage Sensor
20:23:25.372 INFO: Sensor Zero Coverage Sensor
20:23:25.374 INFO: Sensor Zero Coverage Sensor (done) | time=2ms
20:23:25.406 INFO: CPD Executor 20 files had no CPD blocks
20:23:25.406 INFO: CPD Executor Calculating CPD for 60 files
20:23:25.406 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/constant/size_config.dart
20:23:25.413 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/util/built_value_converter.dart
20:23:25.414 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/serializers/serializers.g.dart
20:23:25.415 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/util/overlay_util.dart
20:23:25.416 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/login/model/login_request.dart
20:23:25.416 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/home/screen/home_page.dart
20:23:25.416 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/login/bloc/login_event.dart
20:23:25.417 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/error/exception.dart
20:23:25.417 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/forgot_password/bloc/forgot_password_state.dart
20:23:25.418 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/forgot_password/bloc/forgot_password_bloc.dart
20:23:25.418 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/home/bloc/home_state.dart
20:23:25.419 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/login/bloc/login_bloc.dart
20:23:25.419 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/profile/bloc/profile_state.dart
20:23:25.419 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/webservice/api_client.dart
20:23:25.420 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/serializers/serializers.dart
20:23:25.420 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/main.dart
20:23:25.421 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/firebase/firebase_messaging_helper.dart
20:23:25.421 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/home/bloc/home_bloc.dart
20:23:25.422 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/login/screen/login_page.dart
20:23:25.422 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/error/failures.dart
20:23:25.422 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/index.dart
20:23:25.423 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/home/screen/home_screen.dart
20:23:25.424 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/profile/bloc/profile_bloc.dart
20:23:25.424 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/injection_container.dart
20:23:25.424 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/constant/app_font_size.dart
20:23:25.425 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/error/response_failure.g.dart
20:23:25.430 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/interceptor/header_interceptor.dart
20:23:25.431 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/util/utilities.dart
20:23:25.432 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/constant/colors.dart
20:23:25.432 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/forgot_password/screen/forgot_password_page.dart
20:23:25.433 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/forgot_password/bloc/forgot_password_event.dart
20:23:25.435 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/error/response_failure.dart
20:23:25.435 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/home/bloc/home_event.dart
20:23:25.435 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/profile/bloc/profile_event.dart
20:23:25.436 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/login/screen/login_form.dart
20:23:25.436 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/authentication/authentication_event.dart
20:23:25.436 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui_components/custom_loader/custom_loader.dart
20:23:25.437 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/profile/screen/profile_screen.dart
20:23:25.443 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/splash/screen/splash_screen.dart
20:23:25.443 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/interceptor/exception_interceptor.dart
20:23:25.444 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/profile/model/user.dart
20:23:25.444 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/login/model/login_request.g.dart
20:23:25.445 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/login/model/login_response.g.dart
20:23:25.445 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/forgot_password/screen/forgot_password_form.dart
20:23:25.446 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/constant/strings.dart
20:23:25.447 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/app_config.dart
20:23:25.447 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/webservice/mock_server.dart
20:23:25.448 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/webservice/api_client.chopper.dart
20:23:25.448 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui_components/custom_input/custom_input.dart
20:23:25.448 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/authentication/authentication_bloc.dart
20:23:25.449 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui_components/custom_button/custum_button.dart
20:23:25.449 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/constant/text_styles.dart
20:23:25.450 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui_components/custom_textfield/custom_textfiled.dart
20:23:25.450 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/profile/model/user.g.dart
20:23:25.451 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/forgot_password/model/forgot_password_request.g.dart
20:23:25.451 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/interceptor/network_interceptor.dart
20:23:25.452 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/profile/screen/profile_page.dart
20:23:25.452 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/login/bloc/login_state.dart
20:23:25.453 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/ui/login/model/login_response.dart
20:23:25.453 DEBUG: Detection of duplications for /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/lib/core/sharepref_helper.dart
20:23:25.453 INFO: CPD Executor CPD calculation finished (done) | time=47ms
20:23:25.463 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, create new FileSnapshot: lastRead=2020-09-17 20:23:25.463165000, lastModified=2020-09-17 15:46:09.359612000, size=383, fileKey=(dev=1000004,ino=7638598)
20:23:25.463 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:25.464 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:25.464 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:25.464 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:25.464 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:25.464 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:25.464 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, create new FileSnapshot: lastRead=2020-09-17 20:23:25.464379000, lastModified=2020-09-17 15:46:09.359612000, size=383, fileKey=(dev=1000004,ino=7638598)
20:23:25.465 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:25.465 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:25.465 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:25.465 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:25.465 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:25.465 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:25.465 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, isRacyClean=false, read=2020-09-17 20:23:25.464379000, lastModified=2020-09-17 15:46:09.359612000, delta=16636104767000 ns, racy<=2500000000 ns
20:23:25.465 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, is unmodified
20:23:25.466 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/index, create new FileSnapshot: lastRead=2020-09-17 20:23:25.465912000, lastModified=2020-09-17 19:21:41.802156000, size=31184, fileKey=(dev=1000004,ino=7700117)
20:23:25.466 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, isRacyClean=false, read=2020-09-17 20:23:23.092750000, lastModified=2020-09-16 18:05:10.681564000, delta=94692411186000 ns, racy<=2500000000 ns
20:23:25.466 DEBUG: file=/Users/sunflowerlab/.config/jgit/config, is unmodified
20:23:25.466 DEBUG: file=/private/etc/gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119316000, lastModified=1970-01-01 05:30:00.000000000, delta=1600354403119316000 ns, racy<=2500000000 ns
20:23:25.466 DEBUG: file=/private/etc/gitconfig, is unmodified
20:23:25.466 DEBUG: file=/Users/sunflowerlab/.gitconfig, isRacyClean=false, read=2020-09-17 20:23:23.119986000, lastModified=2020-08-14 14:04:50.407032000, delta=2960312712954000 ns, racy<=2500000000 ns
20:23:25.466 DEBUG: file=/Users/sunflowerlab/.gitconfig, is unmodified
20:23:25.466 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, isRacyClean=false, read=2020-09-17 20:23:25.464379000, lastModified=2020-09-17 15:46:09.359612000, delta=16636104767000 ns, racy<=2500000000 ns
20:23:25.466 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/config, is unmodified
20:23:25.466 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/packed-refs, create new FileSnapshot: lastRead=2020-09-17 20:23:25.466764000, lastModified=2020-09-06 19:05:00.346140000, size=1099, fileKey=(dev=1000004,ino=5628497)
20:23:25.469 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/HEAD, create new FileSnapshot: lastRead=2020-09-17 20:23:25.469076000, lastModified=2020-09-17 15:46:29.144862000, size=26, fileKey=(dev=1000004,ino=7638656)
20:23:25.470 DEBUG: file=/Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.git/refs/heads/TDEBT-314, create new FileSnapshot: lastRead=2020-09-17 20:23:25.470371000, lastModified=2020-09-17 15:46:29.142921000, size=41, fileKey=(dev=1000004,ino=7638654)
20:23:25.471 DEBUG: SCM revision ID '7b1022fe47c95fe2ed3f2080593e6a2ed7bf0322'
20:23:25.569 INFO: Analysis report generated in 96ms, dir size=276 KB
20:23:25.761 INFO: Analysis report compressed in 192ms, zip size=130 KB
20:23:25.761 INFO: Analysis report generated in /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.scannerwork/scanner-report
20:23:25.761 DEBUG: Upload report
20:23:25.779 DEBUG: POST 200 http://localhost:9000/api/ce/submit?projectKey=FlutterBaseProject&projectName=FlutterBaseProject | time=17ms
20:23:25.781 INFO: Analysis report uploaded in 20ms
20:23:25.784 DEBUG: Report metadata written to /Users/sunflowerlab/Documents/SFLProjects/BaseProjectFlutter/SflFlutterBaseProject/.scannerwork/report-task.txt
20:23:25.784 INFO: ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard?id=FlutterBaseProject
20:23:25.784 INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
20:23:25.784 INFO: More about the report processing at http://localhost:9000/api/ce/task?id=AXScjk2PqxaDLGEH55PJ
20:23:25.787 DEBUG: Post-jobs : 
20:23:25.789 INFO: Analysis total time: 9.146 s
20:23:25.791 INFO: ------------------------------------------------------------------------
20:23:25.791 INFO: EXECUTION SUCCESS
20:23:25.791 INFO: ------------------------------------------------------------------------
20:23:25.792 INFO: Total time: 9.940s
20:23:25.847 INFO: Final Memory: 29M/107M
20:23:25.848 INFO: ------------------------------------------------------------------------
sunflowerlab@Sunflowerlabs-MacBook-Pro SflFlutterBaseProject % 

Could not startup process 'dartanalyzer -h'.

i have issue when running sonar-flutter on my macbook, dart analyzer didn't run properly
below the log of error

INFO: Sensor SonarCSS Rules [cssfamily]
INFO: No CSS, PHP, HTML or VueJS files are found in the project. CSS analysis is skipped.
INFO: Sensor SonarCSS Rules [cssfamily] (done) | time=8ms
INFO: Sensor JaCoCo XML Report Importer [jacoco]
INFO: 'sonar.coverage.jacoco.xmlReportPaths' is not defined. Using default locations: target/site/jacoco/jacoco.xml,target/site/jacoco-it/jacoco.xml,build/reports/jacoco/test/jacocoTestReport.xml
INFO: No report imported, no coverage information will be imported by JaCoCo XML Report Importer
INFO: Sensor JaCoCo XML Report Importer [jacoco] (done) | time=21ms
INFO: Sensor Dart sensor [flutter]
INFO: Load project repositories
INFO: Load project repositories (done) | time=194ms
WARN: Duplication reported for 'test/widget_test.dart' will be ignored because it's a test file.
INFO: Sensor Dart sensor [flutter] (done) | time=19396ms
INFO: Sensor dartanalyzer sensor [flutter]
ERROR: Could not startup process 'dartanalyzer -h'.
org.buildobjects.process.StartupException: Could not startup process 'dartanalyzer -h'.
	at org.buildobjects.process.Proc.<init>(Proc.java:91)
	at org.buildobjects.process.ProcBuilder.run(ProcBuilder.java:205)
	at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.verifyIfDartAnalyzerExists(DartAnalyzerSensor.java:254)
	at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.execute(DartAnalyzerSensor.java:68)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:388)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:384)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:353)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
	at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:144)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123)
	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	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:189)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.io.IOException: Cannot run program "dartanalyzer": error=2, No such file or directory
	at java.base/java.lang.ProcessBuilder.start(Unknown Source)
	at java.base/java.lang.ProcessBuilder.start(Unknown Source)
	at java.base/java.lang.Runtime.exec(Unknown Source)
	at org.buildobjects.process.Proc.<init>(Proc.java:77)
	... 33 common frames omitted
Caused by: java.io.IOException: error=2, No such file or directory
	at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
	at java.base/java.lang.ProcessImpl.<init>(Unknown Source)
	at java.base/java.lang.ProcessImpl.start(Unknown Source)
	... 37 common frames omitted

INFO: Sensor dartanalyzer sensor [flutter] (done) | time=39ms
INFO: Sensor Flutter unit tests [flutter]
INFO: Sensor Flutter unit tests [flutter] (done) | time=55ms
INFO: Sensor Flutter Coverage [flutter]
WARN: No coverage information will be saved because LCOV file cannot be found.
WARN: Provided LCOV file path: coverage/lcov.info. Seek file with path: /Users/xplore/Downloads/test/coverage/lcov.info
INFO: Analysing [null]
INFO: Sensor Flutter Coverage [flutter] (done) | time=9ms
INFO: Sensor JavaXmlSensor [java]
INFO: Sensor JavaXmlSensor [java] (done) | time=5ms
INFO: Sensor HTML [web]
INFO: Sensor HTML [web] (done) | time=8ms
INFO: ------------- Run sensors on project
INFO: Sensor Zero Coverage Sensor
INFO: Sensor Zero Coverage Sensor (done) | time=7ms
INFO: SCM Publisher SCM provider for this project is: git
INFO: SCM Publisher 266 source files to be analyzed
INFO: SCM Publisher 0/266 source files have been analyzed (done) | time=119ms
WARN: Missing blame information for the following files:

[Enhancement] More detailed explanation in rules description

Hi, thanks for this valuable plugin. Here is one issue in our daily usage.

The description text in rules is so concise/simple as one sentence. Inexperienced developers have to query dart lint rules website to get reasons for issues and ideas to fix them. It would be much convenient if detailed description was provided in pop-up explanation window, where the actual texts were drew from description field of
dart-lang/src/main/resources/fr/insideapp/sonarqube/dart/dartanalyzer/rules.json.

Currently the rules.json was updated with scripts/updateDartAnalyzerRules.groovy, which crawls rules information from dart linter web pages. However there are much machine-friendly data source about dart official lint rules. Here are two of them, which are used to generate https://dart-lang.github.io/linter/lints/ and https://dart.dev/tools/linter-rules web-pages respectively.

It will be much helpful if the description field of sonar-flutter-plugin's rules are generated through the combination of description and details from dart official lint rules. \n\n can be used to separate description and details texts as paragraphs in markdown format.

Error : dartanalyzer:null_aware_in_logical_operator does not exist

After following all configurations and procedures, the initial working began on SonarQube 6.7.7.

Now, I encountered the following error.

INFO: Sensor Dart sensor [flutter] (done) | time=9773ms
INFO: Sensor dartanalyzer sensor [flutter]
INFO: Backup of original analysis_options.yaml file to analysis_options.yaml.sonar
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 59.354s
INFO: Final Memory: 7M/24M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarScanner execution
ERROR: The rule 'dartanalyzer:null_aware_in_logical_operator' does not exist.
ERROR:

Request you to look into this.

sonar-scanner "Found issues: 0"

If I run flutter analyze I get:
210 issues found. (ran in 2.5s)

...but when I run sonar-scanner the execution succeeds and I get:

...
INFO: Chosen analyzer mode: flutter
INFO: Running 'flutter analyze'...
INFO: Found issues: 0
...

I checked the logs using sonar-scanner -Dsonar.verbose=true and everything looks ok, my .dart files are being detected and there are no weird errors (wrong charset or similar).
This is related to #81 and #8 but none of the suggested ideas solved the problem.
I'm using:

  • SonarQube Community EditionVersion 8.7.1
  • SonarScanner 4.5.0.2216
  • sonar-flutter 0.4.0
  • Flutter 2.2.3 • channel stable • https://github.com/flutter/flutter.git
    Framework • revision f4abaa0735 (3 months ago) • 2021-07-01 12:46:11 -0700
    Engine • revision 241c87ad80
    Tools • Dart 2.13.4

Thanks

Re-use of existing analyzer report not possible

Discussed in #90

Originally posted by NathanAlcantara October 22, 2021
Hello, first thing, i appreciate the effort of doing so amazing plugin, you are awesome!!

I want to know if there is any way to disable the native analysis, because in our company we use the follow command to do the analysis in our CI/CD: fvm flutter analyze --no-pub --current-package --congratulate --no-fatal-infos --no-fatal-warnings --suppress-analytics.

Since we use fvm there's no fixed flutter version in the PATH, so always throw a error saying that "flutter command not found".

I can't start analyse flutter project

I'm trying to add this plugin into my sonar analyzer, but during my github actions I get this error:

java.io.IOException: org.buildobjects.process.StartupException: Could not startup process 'flutter analyze'.
[...]
... 32 common frames omitted
Caused by: java.io.IOException: Cannot run program "flutter": error=2, No such file or directory
[...]
... 34 common frames omitted
Caused by: java.io.IOException: error=2, No such file or directory
[...]
... 37 common frames omitted

My sonar server was into docker, I've already install flutter into server.

Can anyone help me?

False Positives dartanalyzer:prefer_relative_imports with package Imports

We are getting many false positives in SonarQube for the rule dartanalyzer:prefer_relative_imports.

The rule marks every import of third party libary imports, e.g.:

import 'package:path/path.dart';

Running dartanalyzer manually we get "No issues found", also the IDE is not marking those imports as an Error.

ERROR: Could not startup process 'dartanalyzer -h'

Hello guys!

I am unable to find the solution to the error below. Has anyone had the same error using the plugin?

ERROR: Could not startup process 'dartanalyzer -h'.
org.buildobjects.process.StartupException: Could not startup process 'dartanalyzer -h'.
at org.buildobjects.process.Proc.(Proc.java:91)
at org.buildobjects.process.ProcBuilder.run(ProcBuilder.java:205)
at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.verifyIfDartAnalyzerExists(DartAnalyzerSensor.java:254)
at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.execute(DartAnalyzerSensor.java:68)
at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:408)
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:403)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:360)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:126)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:73)
at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
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:189)
at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.io.IOException: Cannot run program "dartanalyzer": error=2, No such file or directory
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
at java.base/java.lang.Runtime.exec(Runtime.java:591)
at org.buildobjects.process.Proc.(Proc.java:77)
... 33 common frames omitted
Caused by: java.io.IOException: error=2, No such file or directory
at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
at java.base/java.lang.ProcessImpl.(ProcessImpl.java:340)
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:271)
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1107)
... 36 common frames omitted

Could not startup process 'flutter analyze'

Hi, im configured Sonarqube flutter on my local machine (Mac). But i had an error :

ERROR: org.buildobjects.process.StartupException: Could not startup process 'flutter analyze'. java.io.IOException: org.buildobjects.process.StartupException: Could not startup process 'flutter analyze'. at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.getIssuesFromAnalyzer(DartAnalyzerSensor.java:137) at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.recordIssuesFromAnalyzer(DartAnalyzerSensor.java:117) at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.execute(DartAnalyzerSensor.java:103) at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85) at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59) at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59) at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123) at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:389) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:385) at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:354) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123) at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:144) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:137) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:123) at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72) at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66) at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) 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:189) at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138) at org.sonarsource.scanner.cli.Main.execute(Main.java:112) at org.sonarsource.scanner.cli.Main.execute(Main.java:75) at org.sonarsource.scanner.cli.Main.main(Main.java:61) Caused by: org.buildobjects.process.StartupException: Could not startup process 'flutter analyze'. at org.buildobjects.process.Proc.<init>(Proc.java:91) at org.buildobjects.process.ProcBuilder.run(ProcBuilder.java:205) at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.getIssuesFromAnalyzer(DartAnalyzerSensor.java:130) ... 32 common frames omitted Caused by: java.io.IOException: Cannot run program "flutter": error=2, No such file or directory at java.base/java.lang.ProcessBuilder.start(Unknown Source) at java.base/java.lang.ProcessBuilder.start(Unknown Source) at java.base/java.lang.Runtime.exec(Unknown Source) at org.buildobjects.process.Proc.<init>(Proc.java:77) ... 34 common frames omitted Caused by: java.io.IOException: error=2, No such file or directory at java.base/java.lang.ProcessImpl.forkAndExec(Native Method) at java.base/java.lang.ProcessImpl.<init>(Unknown Source) at java.base/java.lang.ProcessImpl.start(Unknown Source) ... 38 common frames omitted

So my codesmell report is always 0. Can you help me?

Thank You So Much

Project passes although an Unit Test Error is detected

Hi,

I created a test project to test your flutter/dart sonarqube plugin.
The demo project is published at:
https://github.com/Miles-Ahead-Digital/flutter_sonarqube
I use current versions of all components.

In the project the unit test throws an error. This is detected in sonarqube, but the project passes.
How can I customize the plugin / sonarqube the the quality gate fails.

If you need access to the sonarqube Web-App, let me know. It available in the Interet.
Thanks
Stefan

CleanShot 2021-05-30 at 20 42 10@2x

CleanShot 2021-05-30 at 20 42 37@2x

Problems getting this plugin to work

Thanks for this open source plugin, but unfortunately I am struggling to use it.
I am running sonar as part of a Azure DevOps Pipeline with the following config:

- task: SonarQubePrepare@5
        condition: eq(variables.testReport, true)
        inputs:
          SonarQube: Sonarqube-MY-mobile
          scannerMode: CLI
          configMode: manual
          cliprojectKey: MY-mobile
          cliprojectName: MY-mobile
          cliprojectVersion: $(build.buildId)
          extraProperties: |
            sonar.projectBaseDir=$(system.defaultWorkingDirectory)/MY-mobile-app
            sonar.sources=lib
            sonar.tests=test,integration_test
            sonar.sourceEncoding=UTF-8
            sonar.log.level=DEBUG
            sonar.verbose=true

- task: SonarQubeAnalyze@5
        condition: eq(variables.testReport, true)
        displayName: Run SonarQube analysis and publish

- task: SonarQubePublish@5
        condition: eq(variables.testReport, true)
        inputs:
          pollingTimeoutSec: '300'

I do get a test coverage report, but I do not get the analyzer to work.

  1. If I create an analyzer warning on purpose (based on my analisis_options.yaml) it is detected by sonar:
2022-01-27T13:53:34.9891900Z 14:53:34.988 INFO: Sensor Dart sensor [flutter] (done) | time=2816ms
2022-01-27T13:53:34.9893170Z 14:53:34.988 INFO: Sensor dartanalyzer sensor [flutter]
2022-01-27T13:53:34.9904520Z 14:53:34.989 INFO: Chosen analyzer mode: flutter
2022-01-27T13:53:34.9905600Z 14:53:34.990 INFO: Running 'flutter analyze'...
2022-01-27T13:53:39.4467990Z 14:53:39.446 INFO: Found issues: 1
2022-01-27T13:53:39.4472920Z 14:53:39.447 DEBUG: Inside issue forEach, file absolute path: /Users/ABC/azure-agent/_work/1/s/MY-mobile-app/app/lib/app/common_widgets/bottom_overlay.dart
2022-01-27T13:53:39.4473930Z 14:53:39.447 WARN: File not included in SonarQube /Users/ABC/azure-agent/_work/1/s/MY-mobile-app/app/lib/app/common_widgets/bottom_overlay.dart
2022-01-27T13:53:39.4474430Z 14:53:39.447 INFO: Sensor dartanalyzer sensor [flutter] (done) | time=4459ms

However, the path of the file is wrong. Somehow an extra .../app/... was inserted before /lib.
Many lines above, the same file was logged like this:

2022-01-27T13:53:29.7567540Z 14:53:29.756 DEBUG: 'lib/app/common_widgets/bottom_overlay.dart' indexed with language 'dart'

When I run the analyzer locally the output looks like this:

➜  MY-mobile-app git:(test-flutter-sonar) ✗ flutter analyze
Analyzing MY-mobile-app...                                            

   info • Use key in widget constructors • lib/app/common_widgets/bottom_overlay.dart:13:3 • use_key_in_widget_constructors

1 issues found. (ran in 4.2s)
  1. Sonar only detects analyzer issues if they violate my own config. The apparently much stricter options file which is part of this plugin seems not to be used.

I am currently running out of ideas what I am doing wrong.

NoSuchMethodError when starting SonarQube server

Thank you for providing this plugin. I am facing this issue and could not find any reference to this in other discussions, so raising it here.

Environment:
1.Windows 10 64-bit, OpenJDK 11 64-bit, SonarQube Community Edition 9.0.1, sonar-flutter 0.3.2 (using pre-built .jar file)
1.Fedora 34 64-bit, OpenJDK 11 64-bit, SonarQube Community Edition 9.0.1, sonar-flutter 0.3.2, 0.2.1 (using pre-built .jar file)

SonarQube server starts without issues without sonar-flutter. But when I restart it after copying the plugin, sonarqube server fails to start and I see following error message in web.log

2021.07.30 21:47:45 ERROR web[][o.s.s.p.Platform] Background initialization failed. Stopping SonarQube java.lang.NoSuchMethodError: org.sonar.api.server.rule.RulesDefinition$NewRule.setDebtSubCharacteristic(Ljava/lang/String;)Lorg/sonar/api/server/rule/RulesDefinition$NewRule; at org.sonar.squidbridge.rules.SqaleXmlLoader.processRule(SqaleXmlLoader.java:124) at org.sonar.squidbridge.rules.SqaleXmlLoader.processSubChar(SqaleXmlLoader.java:92) at org.sonar.squidbridge.rules.SqaleXmlLoader.processRoot(SqaleXmlLoader.java:78) at org.sonar.squidbridge.rules.SqaleXmlLoader.loadXmlResource(SqaleXmlLoader.java:65) at org.sonar.squidbridge.rules.SqaleXmlLoader.load(SqaleXmlLoader.java:52) at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerRulesDefinition.define(DartAnalyzerRulesDefinition.java:71) at org.sonar.server.rule.RuleDefinitionsLoader.load(RuleDefinitionsLoader.java:53) at org.sonar.server.rule.RegisterRules.start(RegisterRules.java:117) at org.sonar.core.platform.StartableCloseableSafeLifecyleStrategy.start(StartableCloseableSafeLifecyleStrategy.java:40) at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84) at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169) at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132) at org.picocontainer.behaviors.Stored.start(Stored.java:110) at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016) at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009) at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136) at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:90) at org.sonar.server.platform.platformlevel.PlatformLevelStartup.access$001(PlatformLevelStartup.java:49) at org.sonar.server.platform.platformlevel.PlatformLevelStartup$1.doPrivileged(PlatformLevelStartup.java:87) at org.sonar.server.user.DoPrivileged.execute(DoPrivileged.java:45) at org.sonar.server.platform.platformlevel.PlatformLevelStartup.start(PlatformLevelStartup.java:84) at org.sonar.server.platform.PlatformImpl.executeStartupTasks(PlatformImpl.java:198) at org.sonar.server.platform.PlatformImpl$1.lambda$doRun$1(PlatformImpl.java:122) at org.sonar.server.platform.PlatformImpl$AutoStarterRunnable.runIfNotAborted(PlatformImpl.java:370) at org.sonar.server.platform.PlatformImpl$1.doRun(PlatformImpl.java:122) at org.sonar.server.platform.PlatformImpl$AutoStarterRunnable.run(PlatformImpl.java:354) at java.base/java.lang.Thread.run(Thread.java:834)

How can we speedup sonar-flutter? 🚗💨

I'm currently investigating how we can make the sonar-flutter plugin faster by a large margin.

I read #30 by @EnPython and also found out about the PR #29 by @kuhnroyal, which tries to speed up sonar-flutter by using an existing analyzer report file.

After trying out the PR by @kuhnroyal (btw: awesome work! 🎉 ) and running some sonar checks locally, I found out that this indeed speeds up the Sonar check by a large margin.

As a downside, this requires having some sort of analysis.txt file generated by some command in the first place. That is why I tried to change the sonar-flutter code to run flutter analyze instead of running dartanalyzer file1 file2 file3 ..., and the results for our Flutter project was shockingly fast: it took ~23s instead of ~6m, which was a speedup of ~15x.

Of course, the issues found by flutter analyze and dartanalyzer can be slightly different - and maybe sonar-flutter projects are used by both Flutter and (pure) Dart developers.

That's why I want to know from you: which implementation would you prefer?

  1. Change the default from dartanalyzer to flutter analyze: This would make analysis faster for everyone (yay), but could potentially break for pure-Dart devs
  2. Create a setting enum LEGACY/FLUTTER: People could choose the faster Flutter analysis from Sonar settings - but they have to explicitly opt-in (so some people will never know about this option being available)
  3. Add an automated check that checks pubspec.yaml if Flutter is available and runs flutter analyze for Flutter projects and dartanalyzer for all others: That way Flutter devs would benefit instantly, and Dart devs would still get the old analysis
  4. Some idea of you :)

I'd gladly contribute a PR with this - but it's good to know which direction you would prefer first :)

Sonar 9 can't start with this plugin

Hi everyone.

I am getting this error when I try to start sonarqube 9.1 versión:

2021.09.24 11:52:00 ERROR web[][o.s.s.p.Platform] Background initialization failed. Stopping SonarQube
java.lang.NoSuchMethodError: 'org.sonar.api.server.rule.RulesDefinition$NewRule org.sonar.api.server.rule.RulesDefinition$NewRule.setDebtSubCharacteristic(java.lang.String)'
	at org.sonar.squidbridge.rules.SqaleXmlLoader.processRule(SqaleXmlLoader.java:124)
	at org.sonar.squidbridge.rules.SqaleXmlLoader.processSubChar(SqaleXmlLoader.java:92)
	at org.sonar.squidbridge.rules.SqaleXmlLoader.processRoot(SqaleXmlLoader.java:78)
	at org.sonar.squidbridge.rules.SqaleXmlLoader.loadXmlResource(SqaleXmlLoader.java:65)
	at org.sonar.squidbridge.rules.SqaleXmlLoader.load(SqaleXmlLoader.java:52)
	at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerRulesDefinition.define(DartAnalyzerRulesDefinition.java:71)
	at org.sonar.server.rule.RuleDefinitionsLoader.load(RuleDefinitionsLoader.java:53)
	at org.sonar.server.rule.RegisterRules.start(RegisterRules.java:119)
	at org.sonar.core.platform.StartableCloseableSafeLifecyleStrategy.start(StartableCloseableSafeLifecyleStrategy.java:40)
	at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)
	at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)
	at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)
	at org.picocontainer.behaviors.Stored.start(Stored.java:110)
	at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)
	at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)
	at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.server.platform.platformlevel.PlatformLevel.start(PlatformLevel.java:90)
	at org.sonar.server.platform.platformlevel.PlatformLevelStartup.access$001(PlatformLevelStartup.java:51)
	at org.sonar.server.platform.platformlevel.PlatformLevelStartup$1.doPrivileged(PlatformLevelStartup.java:119)
	at org.sonar.server.user.DoPrivileged.execute(DoPrivileged.java:45)
	at org.sonar.server.platform.platformlevel.PlatformLevelStartup.start(PlatformLevelStartup.java:116)
	at org.sonar.server.platform.PlatformImpl.executeStartupTasks(PlatformImpl.java:198)
	at org.sonar.server.platform.PlatformImpl$1.lambda$doRun$1(PlatformImpl.java:122)
	at org.sonar.server.platform.PlatformImpl$AutoStarterRunnable.runIfNotAborted(PlatformImpl.java:370)
	at org.sonar.server.platform.PlatformImpl$1.doRun(PlatformImpl.java:122)
	at org.sonar.server.platform.PlatformImpl$AutoStarterRunnable.run(PlatformImpl.java:354)
	at java.base/java.lang.Thread.run(Thread.java:829)
2021.09.24 11:52:00 INFO  web[][o.s.p.ProcessEntryPoint] Hard stopping process
2021.09.24 11:52:00 INFO  web[][o.s.s.n.NotificationDaemon] Notification service stopped

dartanalyzer -h - could not startup process

Im trying to run the sonar-scanner command but get an error telling me it could not startup dartanalyzer -h even though it works directly when i use dartananalyzer -h in cmd line.

INFO: ------------------------------------------------------------------------ INFO: EXECUTION FAILURE INFO: ------------------------------------------------------------------------ INFO: Total time: 5.754s INFO: Final Memory: 36M/130M INFO: ------------------------------------------------------------------------ ERROR: Error during SonarQube Scanner execution org.buildobjects.process.StartupException: Could not startup process 'dartanalyzer -h'. at org.buildobjects.process.Proc.<init>(Proc.java:91) at org.buildobjects.process.ProcBuilder.run(ProcBuilder.java:205) at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.verifyCommand(DartAnalyzerSensor.java:129) at fr.insideapp.sonarqube.dart.lang.issues.dartanalyzer.DartAnalyzerSensor.execute(DartAnalyzerSensor.java:84) at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85) at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59) at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59) at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122) at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:386) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:382) at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:351) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122) at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122) at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72) at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66) at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) 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:189) at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138) at org.sonarsource.scanner.cli.Main.execute(Main.java:112) at org.sonarsource.scanner.cli.Main.execute(Main.java:75) at org.sonarsource.scanner.cli.Main.main(Main.java:61) Caused by: java.io.IOException: Cannot run program "dartanalyzer": CreateProcess error=2, Het systeem kan het opgegeven bestand niet vinden at java.base/java.lang.ProcessBuilder.start(Unknown Source) at java.base/java.lang.ProcessBuilder.start(Unknown Source) at java.base/java.lang.Runtime.exec(Unknown Source) at org.buildobjects.process.Proc.<init>(Proc.java:77) ... 33 more Caused by: java.io.IOException: CreateProcess error=2, Het systeem kan het opgegeven bestand niet vinden at java.base/java.lang.ProcessImpl.create(Native Method) at java.base/java.lang.ProcessImpl.<init>(Unknown Source) at java.base/java.lang.ProcessImpl.start(Unknown Source) ... 37 more

when running the command directly in the same directory it does work. see code below.

`D:\Development\Flutter\KlankenBak_Repo\KlankenBak\klankenbak>dartanalyzer -h
Usage: dartanalyzer [options...]

--dart-sdk                  The path to the Dart SDK.
--options                   Path to an analysis options file.
--package-root              The path to a package root directory (deprecated). This option cannot be used with --packages.
--[no-]declaration-casts    Disable declaration casts in strong mode (https://goo.gl/cTLz40)
                            This option is now ignored and will be removed in a future release.

--[no-]implicit-casts       Disable implicit casts in strong mode (https://goo.gl/cTLz40).
--no-implicit-dynamic       Disable implicit dynamic (https://goo.gl/m0UgXD).
--packages                  The path to the package resolution configuration file, which supplies a mapping of package names
                            to paths. This option cannot be used with --package-root.

--[no-]lints                Show lint results.
--format                    Specifies the format in which errors are displayed; the only currently allowed value is 'machine'.
--version                   Print the analyzer version.
--enable-experiment         Enable one or more experimental features. If multiple features are being added, they should be comma separated.
--no-hints                  Do not show hint results.
--fatal-infos               Treat infos as fatal.
--fatal-warnings            Treat non-type warnings as fatal.

-h, --help Display this help message. Add --verbose to show hidden options.
-v, --verbose Verbose output.

Run "dartanalyzer -h -v" for verbose help output, including less commonly used options.
For more information, see https://www.dartlang.org/tools/analyzer.`

"ERROR: java.nio.file.Path.of(Ljava/net/URI;)Ljava/nio/file/Path;" during scan

Hello,

We get the following error during "sonar-scanner" execution:
11:44:20.460 ERROR: Error during SonarQube Scanner execution java.lang.NoSuchMethodError: java.nio.file.Path.of(Ljava/net/URI;)Ljava/nio/file/Path; at fr.insideapp.sonarqube.flutter.tests.FlutterTestReportParser.parse(FlutterTestReportParser.java:40) at fr.insideapp.sonarqube.flutter.tests.FlutterTestSensor.execute(FlutterTestSensor.java:57) at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85) at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59) at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77) at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59) at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122) at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:386) at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:382) at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:351) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122) at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141) at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136) at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122) at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72) at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66) at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46) 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:498) 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:185) at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:137) at org.sonarsource.scanner.cli.Main.execute(Main.java:111) at org.sonarsource.scanner.cli.Main.execute(Main.java:75

I attache the logs outputted by the "sonar-scanner -X > sonnar_scanner_logs.txt" command.

Is there anything we can do so that we get over this error?

Thanks!
sonnar_scanner_logs.txt

Sonar-flutter plugin not working with Sonarqube 9

Hi,

I have tried updating to SonarQube Version: 9.0 and seems to be failing when we restart after installing the plugin with following error

Screenshot 2021-07-08 at 7 26 52 PM

Any plan to upgrade plugin to support Sonarqube v9 any sooner?
Really appreciate any comment on this!

GitHub Action support

It looks like using this plugin requires a SonarQube server and I'm wondering if that's true and whether it's possible to use this in a GitHub Action?

No any Dart/flutter issues found in SQ

I set up a Flutter plugin in my SonarQube server, but I realized there were no Dart issues were found in the SQ dashboard after scanning my flutter project code using "sonar-scanner". But I can found some JAVA and HTTP issues.

Do I miss something to set up?

image

Why sonar-flutter is so slow ?

hi , when i use sonar-scanner to scan my flutter project , i got the confusion that it wasted long time (about 3 hours) to scan my project. But when i use the command line "dartanalyzer lib" to scan my project, it just wasted about 18 min to finish the job. The most confusing is that when i use command line "flutter analyze", it just wasted about 20s to finish the scanned job.
i dont know what is differences among the above tools

Override analysis_options yaml file with project's

Hi, I'm currently trialling the usage of this plugin to be used in my Flutter project.

There are some rules I would like to leave out of the analysis, such as:
dartanalyzer:prefer_double_quotes, as we are practicing using single quotes instead.

Is there a way (like pass in a flag) to indicate to use our own project dir's analysis options file?

Thanks!

"Best practices" issues break sonar analysis

This is more of a dart issue but we can add a quick fix

The problem:
The dartanalyzer cli includes a BestPracticesVerifier producing "hint" outputs. Those outputs are present in the HintCode class but not in the Lint api from where the lint errors are fetched (https://dart-lang.github.io/linter/lints/).

As a consequence, the analysis will break with error "dartanalyzer:ruleXX" does not exist (at least I guess this is the reason)

A quick-fix would be to run the analyzer with the flag --no-hints, to be sure only lint errors get outputed,

But in the meantime we need to find a way to get those hints added to the sonar analysis as well...

Flutter supports coverage and machine in 1.18.0

Starting with 1.18.0/beta Flutter supports running tests with --coverage --machine at the same time. However the test output has somewhat changed. See flutter/flutter#56675

I am not sure if the changes in the output are a problem, I have not used sonar-flutter yet but I want to once Flutter 1.18.0 is stable.

Maybe someone can test this and eventually update the docs.

Cannot run program "dartanalyzer": CreateProcess error=2, The system cannot find the file specified

Hi,
I'm facing a big problem.

my sonar-scanner.properties file:
sonar.host.url=//my server sonarqube
sonar.login=//my code to login
sonar.projectKey=//my projectKey
sonar.projectName=//my projectName
sonar.projectVersion=1.0.0
sonar.exclusions=.scannerwork/, .git/, vendor/, logs/, android/, ios/
sonar.projectBaseDir=Source
sonar.sources=lib
sonar.tests=test
sonar.sourceEncoding=UTF-8

When i run sonarqube: sonar-scanner -Dproject.settings=sonar-scanner.properties
i got errors:
INFO: Scanner configuration file: D:\Devops\Sonar-Scan\sonar-scanner-3.3.0.1492-windows\bin..\conf\sonar-scanner.properties
INFO: Project root configuration file: D:\JenkinsAgentIT2\workspace\MyProject\sonar-scanner.properties
INFO: SonarQube Scanner 3.3.0.1492
INFO: Java 1.8.0_121 Oracle Corporation (64-bit)
INFO: Windows NT (unknown) 10.0 amd64
INFO: User cache: C:\Users\Administrator.sonar\cache
INFO: SonarQube server 7.4.0
INFO: Default locale: "en_US", source code encoding: "UTF-8"
INFO: Publish mode
INFO: Load global settings
INFO: Load global settings (done) | time=79ms
INFO: Server id: XXXXXXXXXXXXXX
INFO: User cache: C:\Users\Administrator.sonar\cache
INFO: Load/download plugins
INFO: Load plugins index
INFO: Load plugins index (done) | time=48ms
INFO: Load/download plugins (done) | time=79ms
INFO: Loaded core extensions:
INFO: Process project properties
INFO: Execute project builders
INFO: Execute project builders (done) | time=5ms
INFO: Load project repositories
INFO: Load project repositories (done) | time=57ms
INFO: Load quality profiles
INFO: Load quality profiles (done) | time=32ms
INFO: Load active rules
INFO: Load active rules (done) | time=2158ms
INFO: Load metrics repository
INFO: Load metrics repository (done) | time=25ms
INFO: Project key: my projectKey
INFO: Project base dir: D:\JenkinsAgentIT2\workspace\MyProject\Source
INFO: ------------- Scan MyProject
INFO: Base dir: D:\JenkinsAgentIT2\workspace\MyProject\Source
INFO: Working dir: D:\JenkinsAgentIT2\workspace\MyProject\Source.scannerwork
INFO: Source paths: lib
INFO: Test paths: test
INFO: Source encoding: UTF-8, default locale: en_US
INFO: Load server rules
INFO: Load server rules (done) | time=208ms
INFO: Index files
INFO: 253 files indexed
INFO: Quality profile for dart: dartanalyzer
INFO: Sensor JaCoCo XML Report Importer [jacoco]
INFO: Sensor JaCoCo XML Report Importer [jacoco] (done) | time=5ms
INFO: Sensor Dart sensor [flutter]
INFO: Sensor Dart sensor [flutter] (done) | time=5864ms
INFO: Sensor dartanalyzer sensor [flutter]
INFO: Backup of original analysis_options.yaml file to analysis_options.yaml.sonar
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 12.142s
INFO: Final Memory: 291M/1042M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
ERROR: Could not startup process 'dartanalyzer -h'.
ERROR: Caused by: Cannot run program "dartanalyzer": CreateProcess error=2, The system cannot find the file specified
ERROR: Caused by: CreateProcess error=2, The system cannot find the file specified
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

I checked dartanalyzer -h in the same folder, it fines!
Usage: dartanalyzer [options...]

--dart-sdk                    The path to the Dart SDK.
--options                     Path to an analysis options file.
--package-root                The path to a package root directory (deprecated). This option cannot be used with --packages.
--[no-]declaration-casts      Disable declaration casts in strong mode (https://goo.gl/cTLz40)
                              This option is now ignored and will be removed in a future release.
--[no-]implicit-casts         Disable implicit casts in strong mode (https://goo.gl/cTLz40).
--no-implicit-dynamic         Disable implicit dynamic (https://goo.gl/m0UgXD).
--packages                    The path to the package resolution configuration file, which supplies a mapping of package names
                              to paths. This option cannot be used with --package-root.
--[no-]lints                  Show lint results.
--format                      Specifies the format in which errors are displayed; the only currently allowed value is 'machine'.
--version                     Print the analyzer version.
--enable-experiment           Enable one or more experimental features. If multiple features are being added, they should be comma separated.
--no-hints                    Do not show hint results.
--fatal-infos                 Treat infos as fatal.
--fatal-warnings              Treat non-type warnings as fatal.

-h, --help Display this help message. Add --verbose to show hidden options.
-v, --verbose Verbose output.
--default-language-version The default language version when it is not specified via other ways (internal, tests only).

Run "dartanalyzer -h -v" for verbose help output, including less commonly used options.
For more information, see https://www.dartlang.org/tools/analyzer.

Anyone can suggest me the solution, please :(

Sonar-flutter with codeamagic

I was trying to automate the flutter build process and thought of adding sonar as part of pre build workflow for which I wrote a script which seems to be working fine on local host with sonar-flutter plugin but when same script is deployed on code magic this does not work.

What I think reason for this could be that when we run on local host, we first start sonar local host server and then we perform analysis. When local host server is started, it loads the flutter plugin which we added in extensions/plugins folder.

But when we run it over the server (code magic server), we are not starting any local host server and directly running sonar-scanner, so it is completely unaware that it needs to load flutter plugin and perform flutter analysis.

How could we achieve this? any inputs ?

dartanalyzer sensor error

Hi, when executing dartanalyzer error after some minutes it caughts an exception:

org.buildobjects.process.ExternalProcessFailureException: External process 'dartanalyzer lib/* returned 3 after 201868ms

Any clue about this error?

Thanks!

SonarQube server [http://localhost:9015] can not be reached

When I want to start the scanner I get the error in the description.

I have no other services running on localhost nor on port 9015 (tried multiple others).

Steps:
create properties file like in the description

flutter pub get
flutter test --machine > tests.output
flutter test --coverage
sonar-scanner

Output:

INFO: Scanner configuration file: /sonar-scanner-cli-4.5.0.2216-linux/sonar-scanner-4.5.0.2216-linux/conf/sonar-scanner.properties
INFO: Project root configuration file: /sonar-project.properties
INFO: SonarScanner 4.5.0.2216
INFO: Java 11.0.3 AdoptOpenJDK (64-bit)
INFO: Linux 5.4.0-48-generic amd64
INFO: User cache: /.sonar/cache
ERROR: SonarQube server [http://localhost:9015] can not be reached
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 0.387s
INFO: Final Memory: 2M/14M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarScanner execution
org.sonarsource.scanner.api.internal.ScannerException: Unable to execute SonarScanner analysis
at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.lambda$createLauncher$0(IsolatedLauncherFactory.java:85)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:74)
at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:70)
at org.sonarsource.scanner.api.EmbeddedScanner.doStart(EmbeddedScanner.java:185)
at org.sonarsource.scanner.api.EmbeddedScanner.start(EmbeddedScanner.java:123)
at org.sonarsource.scanner.cli.Main.execute(Main.java:73)
at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.IllegalStateException: Fail to get bootstrap index from server
at org.sonarsource.scanner.api.internal.BootstrapIndexDownloader.getIndex(BootstrapIndexDownloader.java:42)
at org.sonarsource.scanner.api.internal.JarDownloader.getScannerEngineFiles(JarDownloader.java:58)
at org.sonarsource.scanner.api.internal.JarDownloader.download(JarDownloader.java:53)
at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.lambda$createLauncher$0(IsolatedLauncherFactory.java:76)
... 7 more
Caused by: java.net.ConnectException: Failed to connect to localhost/127.0.0.1:9015
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.RealConnection.connectSocket(RealConnection.java:265)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.RealConnection.connect(RealConnection.java:183)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.Transmitter.newExchange(Transmitter.java:169)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at org.sonarsource.scanner.api.internal.shaded.okhttp.RealCall.getResponseWithInterceptorChain(RealCall.java:221)
at org.sonarsource.scanner.api.internal.shaded.okhttp.RealCall.execute(RealCall.java:81)
at org.sonarsource.scanner.api.internal.ServerConnection.callUrl(ServerConnection.java:114)
at org.sonarsource.scanner.api.internal.ServerConnection.downloadString(ServerConnection.java:99)
at org.sonarsource.scanner.api.internal.BootstrapIndexDownloader.getIndex(BootstrapIndexDownloader.java:39)
... 10 more
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.base/java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.base/java.net.SocksSocketImpl.connect(Unknown Source)
at java.base/java.net.Socket.connect(Unknown Source)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.platform.Platform.connectSocket(Platform.java:130)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.RealConnection.connectSocket(RealConnection.java:263)
... 31 more
ERROR:
ERROR: Re-run SonarScanner using the -X switch to enable full debug logging.

Java Null Pointer Exception at the flutter test section of sonar-scanner

I can't seem to get pass this error no matter what I do, any ideas?

21:05:20.061 INFO: Sensor dartanalyzer sensor [flutter]
21:05:20.061 INFO: Backup of original analysis_options.yaml file to analysis_options.yaml.sonar
21:05:34.204 INFO: Restored original analysis_options.yaml file
21:05:34.206 INFO: Sensor dartanalyzer sensor [flutter] (done) | time=14145ms
21:05:34.209 INFO: Sensor Flutter unit tests [flutter]
21:05:34.370 INFO: ------------------------------------------------------------------------
21:05:34.371 INFO: EXECUTION FAILURE
21:05:34.371 INFO: ------------------------------------------------------------------------
21:05:34.372 INFO: Total time: 34.544s
21:05:34.558 INFO: Final Memory: 58M/197M
21:05:34.558 INFO: ------------------------------------------------------------------------
21:05:34.558 ERROR: Error during SonarQube Scanner execution
java.lang.NullPointerException
	at fr.insideapp.sonarqube.flutter.tests.FlutterTestReportParser.parse(FlutterTestReportParser.java:58)
	at fr.insideapp.sonarqube.flutter.tests.FlutterTestReportParser.parse(FlutterTestReportParser.java:42)
	at fr.insideapp.sonarqube.flutter.tests.FlutterTestSensor.execute(FlutterTestSensor.java:57)
	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:48)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:85)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.lambda$execute$1(ModuleSensorsExecutor.java:59)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.withModuleStrategy(ModuleSensorsExecutor.java:77)
	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:59)
	at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:82)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:408)
	at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:403)
	at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:360)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:126)
	at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
	at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:73)
	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	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:189)
	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:112)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:75)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)
The command "sonar-scanner -X -Dsonar.projectKey=$SONAR_KEY -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN" exited with 1.```

Compile Error is tracked by Sonarqube as Code Smell - Caterogy Minor / Quality Gate passes..

Hi,

I created a test project to test your flutter/dart sonarqube plugin.
The demo project is published at:
https://github.com/Miles-Ahead-Digital/flutter_sonarqube
I use current versions of all components.

I forced an compile error in the Project. Sonarqube detects this as Code Smell which is ok, but the Caterogy is minor and the Quality Gate passes.

How can I customize the plugin / sonarqube the the quality gate fails?

If you need access to the sonarqube Web-App, let me know. It available in the Interet.
Thanks
Stefan

CleanShot 2021-05-30 at 20 48 06@2x
CleanShot 2021-05-30 at 20 49 59@2x
CleanShot 2021-05-30 at 20 49 39@2x

Custom analysis_options.yaml is not working if does not contain rules only

We have a custom analysis_options.yaml which is in this form:

  exclude:
    - "**/*.dart_tool/*"
    - "**/build/*"
    - "**/*.g.dart"

  strong-mode:
    implicit-casts: false
    implicit-dynamic: false

linter:
  rules:
    # Errors
    - avoid_empty_else
    - control_flow_in_finally
    - empty_statements
    - test_types_in_equals
    - throw_in_finally
    - valid_regexps
    - camel_case_types

But even when using sonar.dart.analysis.useExistingOptions=true in the properties, our rules are ignored and SonarQube dashboard reports 0 errors.

I think the problem is that when enabling this flag, the rules are parsed from the start without searching for the "linter" string first, breaking the analyzation.
If I remove everything before the linter: string, the rules are picked correctly.

CC @stephanecodes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.