SonarQube - 无法使用UTF-16编码分析xml和xsd文件

时间:2018-01-03 11:17:27

标签: xml xsd sonarqube utf-16 sonarqube-scan

我正在使用 sonarqube (版本 5.6.7 )和声纳扫描仪(版本 3.0.3.778 )用于分析一些文件。 在这些文档中,还有 .xml .xsd 文件,其中包含 UTF-16

当我从命令行启动sonar-scanner命令时,使用此配置

#----- Default SonarQube server
sonar.host.url=http://localhost:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-16

# must be unique in a given SonarQube instance
sonar.projectKey=my:project
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=My project 1
sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set. 
sonar.sources=.
sonar.language=xml

我获得了这个例外:

 sonar-scanner -Dproject.settings=C:\files\sonar-scanner.properties 
    INFO: Scanner configuration file: C:\SonarQube\sonar-scanner-3.0.3.778-windows\bin\..\conf\sonar-scanner.properties 
    INFO: Project root configuration file: C:\files\sonar-scanner.properties 
    INFO: SonarQube Scanner 3.0.3.778 
    INFO: Java 1.8.0_121 Oracle Corporation (64-bit) 
    INFO: Windows 7 6.1 amd64 
    INFO: User cache: C:\Users\fan\.sonar\cache 
    INFO: Load global repositories 
    INFO: Load global repositories (done) | time=152ms 
    INFO: User cache: C:\Users\fan\.sonar\cache 
    INFO: Load plugins index 
    INFO: Load plugins index (done) | time=12ms 
    INFO: SonarQube server 5.6.7 
    INFO: Default locale: "it_IT", source code encoding: "UTF-16" 
    INFO: Process project properties 
    INFO: Load project repositories 
    INFO: Load project repositories (done) | time=36ms 
    INFO: Load quality profiles 
    INFO: Load quality profiles (done) | time=308ms 
    INFO: Load active rules 
    INFO: Load active rules (done) | time=1264ms WARN: SCM provider autodetection failed. No SCM provider claims to support this project. Please use sonar.scm.provider to define SCM of your project. 
    INFO: Publish mode 
    INFO:   Scan My project 1 
    INFO: Language is forced to xml 
    INFO: Load server rules 
    INFO: Load server rules (done) | time=234ms 
    INFO: Base dir: C:\files INFO: Working dir: C:\files\.scannerwork 
    INFO: Source paths: . 
    INFO: Source encoding: UTF-16, default locale: it_IT 
    INFO: Index files INFO: 1 files indexed INFO: Quality profile for xml: Sonar way 
    INFO: JaCoCoSensor: JaCoCo report not found : C:\files\target\jacoco.exec INFO: JaCoCoItSensor: JaCoCo IT report not found: C:\files\target\jacoco-it.exec 
    INFO: Sensor Lines Sensor 
    INFO: Sensor Lines Sensor (done) | time=21ms 
    INFO: Sensor SCM Sensor 
    INFO: No SCM system was detected. You can use the 'sonar.scm.provider' property to explicitly specify it. 
    INFO: Sensor SCM Sensor (done) | time=5ms INFO: Sensor XML Sensor 
    INFO: EXECUTION FAILURE 
    INFO: Total time: 5.391s INFO: Final Memory: 45M/255M 
    ERROR: Error during SonarQube Scanner execution org.sonar.squidbridge.api.AnalysisException: Unable to analyse file C:/files/office.xsd
                at org.sonar.plugins.xml.XmlSensor.processException(XmlSensor.java:195)
                at org.sonar.plugins.xml.XmlSensor.execute(XmlSensor.java:158)
                at org.sonar.batch.sensor.SensorWrapper.analyse(SensorWrapper.java:57)
                at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58)
                at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50)
                at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:83)
                at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192)
                at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
                at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
                at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:241)
                at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236)
                at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:226)
                at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
                at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
                at org.sonar.batch.task.ScanTask.execute(ScanTask.java:47)
                at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86)
                at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
                at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
                at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:106)
                at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119)
                at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
                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:233)
                at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
                at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
                at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
                at org.sonarsource.scanner.cli.Main.main(Main.java:61) 
Caused by: java.lang.IllegalArgumentException: Line 2 is out of range for file [moduleKey=my:project, relative=office.xsd, basedir=C:\files]. File has 1 lines.
                at com.google.common.base.Preconditions.checkArgument(Preconditions.java:148)
                at org.sonar.batch.DefaultFileLinesContext.checkLineRange(DefaultFileLinesContext.java:76)
                at org.sonar.batch.DefaultFileLinesContext.setIntValue(DefaultFileLinesContext.java:69)
                at org.sonar.plugins.xml.LineCounter.saveMeasures(LineCounter.java:53)
                at org.sonar.plugins.xml.LineCounter.analyse(LineCounter.java:74)
                at org.sonar.plugins.xml.XmlSensor.computeLinesMeasures(XmlSensor.java:90)
                at org.sonar.plugins.xml.XmlSensor.execute(XmlSensor.java:153)
                ... 30 more ERROR: ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

与xml文件相同,始终使用UTF-16编码(当然这些文件不只有一行!!)。

SonarQube正在使用 sonar-xml-plugin 版本 1.4.3.1027

如何解决?

0 个答案:

没有答案