问题描述
在 C# 项目上运行 SonarQube 时出现此错误消息:
I have this error message when running SonarQube on a C# project :
...
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 30.377s
INFO: Final Memory: 58M/828M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
java.lang.IllegalArgumentException: 79 is not a valid line offset for pointer. File [moduleKey=dot-net_SCHLUMBERGER-Helios, relative=wtap_nextgen/Src/Component/WebSolution/MMS/wwwroot/css/bootwatch-paper.css, basedir=/builds/dot-net/SCHLUMBERGER-Helios] has 78 character(s) at line 1
at org.sonar.api.internal.google.common.base.Preconditions.checkArgument(Preconditions.java:148)
at org.sonar.api.batch.fs.internal.DefaultInputFile.checkValid(DefaultInputFile.java:218)
at org.sonar.api.batch.fs.internal.DefaultInputFile.newPointer(DefaultInputFile.java:209)
at org.sonar.api.batch.fs.internal.DefaultInputFile.newRange(DefaultInputFile.java:240)
at org.sonar.css.issue.PreciseIssue.save(PreciseIssue.java:119)
at org.sonar.plugins.css.CssSquidSensor.saveIssues(CssSquidSensor.java:121)
at org.sonar.plugins.css.CssSquidSensor.save(CssSquidSensor.java:105)
at org.sonar.plugins.css.CssSquidSensor.analyse(CssSquidSensor.java:89)
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:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java: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:240)
at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:110)
at org.sonarsource.scanner.cli.Main.execute(Main.java:72)
at org.sonarsource.scanner.cli.Main.main(Main.java:60)
ERROR: Build failed: exit code 1
有人知道这是从哪里来的吗?似乎扫描仪正在尝试访问 XXX/bootwatch-paper.css
第一行的第 79 个字符,它只有 78 个字符.为什么它会尝试读取第 79 个字符?这可能是编码问题吗?如何解决这个问题?
Does anyone have a clue where this comes from ?
It seems like the scanner is trying to access character 79 of the first line of XXX/bootwatch-paper.css
, which only has 78 characters. Why would it try to read the 79th character ?
Could this be an encoding issue?
How to fix this ?
干杯!
推荐答案
我的一个 AssemblyInfo.cs 文件也有类似的问题.这绝对是编码.我在 Sublime Text 中打开文件并用不同的编码保存它,看看有什么用.这是我发现的,尽管对你来说可能会有所不同,因为我使用的是 C# 插件,而你使用的是 css 插件.
I had a similar issue with one of my AssemblyInfo.cs files. It was definitely the encoding. I opened the file in Sublime Text and saved it with different encodings to see what worked. Here is what I found, although it may be different for you since I was using the C# plugin and you are using the css plugin.
- UTF-8 - 成功
- 带有 BOM 的 UTF-8 - 成功
- UTF-16 LE - 成功
- 带有 BOM 的 UTF-16 LE - 失败
- UTF-16 BE - 成功
- UTF-16 BE 与 BOM - 失败
- 西方 (Windows 1252) - 成功
这篇关于SonarQube Scanner 执行期间出错:java.lang.IllegalArgumentException: 79 is not a valid line offset for pointer的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!