Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sonarqube C++;社区插件:Sonar runner扫描错误的文件类型+;词汇错误_Sonarqube_Sonar Runner - Fatal编程技术网

Sonarqube C++;社区插件:Sonar runner扫描错误的文件类型+;词汇错误

Sonarqube C++;社区插件:Sonar runner扫描错误的文件类型+;词汇错误,sonarqube,sonar-runner,Sonarqube,Sonar Runner,我已经设置了一个Sonar服务器,并试图通过设置一个测试项目来获取一些指标,但我遇到了一些问题。 环境: 操作系统:Windows Server 2008 R2/amd64/6.1 应用服务器:Tomcat/7.0.40I,部署了声纳战争文件(3.5.1) 数据库:MySQL v5.6.11 (相关)插件: 声呐C++社区插件(0.2) 插件在一般设置下可见——>声纳C++社区插件< /LI> sonar-project.properties: # Required metadata s

我已经设置了一个Sonar服务器,并试图通过设置一个测试项目来获取一些指标,但我遇到了一些问题。 环境:

  • 操作系统:Windows Server 2008 R2/amd64/6.1
  • 应用服务器:Tomcat/7.0.40I,部署了声纳战争文件(3.5.1)
  • 数据库:MySQL v5.6.11
(相关)插件:

  • 声呐C++社区插件(0.2) 插件在一般设置下可见——>声纳C++社区插件< /LI>
sonar-project.properties:

# Required metadata
sonar.projectKey=mistral:pmc
sonar.projectName=PMC
sonar.projectVersion=1.0
sonar.language=c++

# Comma-separated paths to directories with sources (required)
sonar.sources=e:/Development/mistral/PMC/trunk/

# Optional path to the CppCheck program required to activate some CppCheck rules
sonar.cpp.cppcheck.path=C:/Program Files (x86)/Cppcheck/cppcheck.exe

# Encoding of the source files
sonar.sourceEncoding=UTF-8
第1期:

当运行sonar runner时,它会失败,因为它试图分析不相关的文件类型,如.DOC(见下文)

当我通过在sonar-project.properties文件中添加:
sonar.excludes=***.doc、***/.svc
来强制排除有问题的文件类型时,我可以解决这个问题,但我更愿意让它按预期工作(只考虑配置好的文件)

第二期:

分析在扫描时抛出“文件中的词法错误”错误(见下文)。我相信如果源代码编码不同,可能会发生这种情况

C:\Users\Administrator\Documents\sonar-projects\PMC>sonar-runner
C:\Users\Administrator\Documents\sonar-runner-2.2.1
Sonar Runner 2.2.1
Java 1.7.0_21 Oracle Corporation (64-bit)
Windows Server 2008 R2 6.1 amd64
INFO: Runner configuration file: C:\Users\Administrator\Documents\sonar-runner-2.2.1\conf\sonar-runner.properties
INFO: Project configuration file: C:\Users\Administrator\Documents\sonar-projects\PMC\sonar-project.properties
INFO: Default locale: "en_US", source code encoding: "UTF-8"
INFO: Work directory: C:\Users\Administrator\Documents\sonar-projects\PMC\.sonar
INFO: Sonar Server 3.5.1
13:22:35.048 INFO  - Load batch settings
13:22:35.154 INFO  - User cache: C:\Users\Administrator\.sonar\cache
13:22:35.157 INFO  - Install plugins
13:22:35.878 INFO  - -------------  Executing Project Scan
13:22:36.471 INFO  - Install JDBC driver
13:22:36.476 INFO  - Apply project exclusions
13:22:36.481 INFO  - Create JDBC datasource for jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8
13:22:36.730 INFO  - Initializing Hibernate
13:22:38.990 INFO  - -------------  Inspecting PMC
13:22:38.995 INFO  - Load module settings
13:22:40.078 INFO  - Quality profile : [name=Default C++ Profile,language=c++]
13:22:40.096 INFO  - Excluded sources:
13:22:40.097 INFO  -   **/*.doc
13:22:40.097 INFO  -   **/*.svc
13:22:40.097 INFO  - Excluded tests:
13:22:40.098 INFO  -   **/package-info.java
13:22:40.125 INFO  - Configure Maven plugins
13:22:40.266 INFO  - Compare to previous analysis (2013-05-30)
13:22:40.326 INFO  - Compare over 5 days (2013-05-25, analysis of 2013-05-29 09:23:04.0)
13:22:40.366 INFO  - Compare over 30 days (2013-04-30, analysis of 2013-05-29 09:23:04.0)
13:22:40.575 INFO  - Base dir: C:\Users\Administrator\Documents\sonar-projects\PMC
13:22:40.575 INFO  - Working dir: C:\Users\Administrator\Documents\sonar-projects\PMC\.sonar
13:22:40.576 INFO  - Source dirs: e:\Development\mistral\PMC\trunk
13:22:40.576 INFO  - Source encoding: UTF-8, default locale: en_US
13:22:40.902 INFO  - Sensor CxxSourceImporter...
13:22:42.888 INFO  - Sensor CxxSourceImporter done: 1986 ms
13:22:42.889 INFO  - Sensor CpdSensor...
13:22:42.889 INFO  - SonarBridgeEngine is used
13:22:42.985 INFO  - Cross-project analysis disabled
net.sourceforge.pmd.cpd.cppast.TokenMgrError: Lexical error in file e:\Development\mistral\PMC\trunk\AppServer\ApplicationDistributionScheduler\Logic\ActivateItvApplicationOnMcmDistributionRequestP
essor.cs at line 1, column 1.  Encountered: "\ufeff" (65279), after : ""
        at net.sourceforge.pmd.cpd.cppast.CPPParserTokenManager.getNextToken(CPPParserTokenManager.java:1655)
        at net.sourceforge.pmd.cpd.CPPTokenizer.tokenize(CPPTokenizer.java:26)
        at org.sonar.duplications.internal.pmd.TokenizerBridge.chunk(TokenizerBridge.java:60)
        at org.sonar.duplications.internal.pmd.TokenizerBridge.chunk(TokenizerBridge.java:52)
        at org.sonar.plugins.cpd.SonarBridgeEngine.analyse(SonarBridgeEngine.java:102)
        at org.sonar.plugins.cpd.CpdSensor.analyse(CpdSensor.java:80)
        at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:70)
        at org.sonar.batch.phases.Phases.execute(Phases.java:101)
        at org.sonar.batch.scan.ScanContainer.doStart(ScanContainer.java:147)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:65)
        at org.sonar.batch.scan.ScanTask.scanRecursively(ScanTask.java:56)
        at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:49)
        at org.sonar.batch.bootstrap.TaskContainer.doStart(TaskContainer.java:188)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.bootstrap.TaskBootstrapContainer.executeTask(TaskBootstrapContainer.java:73)
        at org.sonar.batch.bootstrap.TaskBootstrapContainer.doStart(TaskBootstrapContainer.java:62)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.bootstrap.BootstrapContainer.doStart(BootstrapContainer.java:104)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.bootstrapper.Batch.startBatch(Batch.java:88)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:72)
        at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:45)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:75)
        at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:63)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:57)
        at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
        at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:71)
        at org.sonar.runner.api.Runner.execute(Runner.java:89)
        at org.sonar.runner.Main.executeTask(Main.java:70)
        at org.sonar.runner.Main.execute(Main.java:59)
        at org.sonar.runner.Main.main(Main.java:41)
Skipping e:\Development\mistral\PMC\trunk\AppServer\ApplicationDistributionScheduler\Logic\ActivateItvApplicationOnMcmDistributionRequestProcessor.cs due to parse error
net.sourceforge.pmd.cpd.cppast.TokenMgrError: Lexical error in file e:\Development\mistral\PMC\trunk\AppServer\ApplicationDistributionScheduler\Logic\ApplicationDistributionRequestProcessor.cs at l
 1, column 1.  Encountered: "\ufeff" (65279), after : ""
        at net.sourceforge.pmd.cpd.cppast.CPPParserTokenManager.getNextToken(CPPParserTokenManager.java:1655)
        at net.sourceforge.pmd.cpd.CPPTokenizer.tokenize(CPPTokenizer.java:26)
        at org.sonar.duplications.internal.pmd.TokenizerBridge.chunk(TokenizerBridge.java:60)
        at org.sonar.duplications.internal.pmd.TokenizerBridge.chunk(TokenizerBridge.java:52)
        at org.sonar.plugins.cpd.SonarBridgeEngine.analyse(SonarBridgeEngine.java:102)
        at org.sonar.plugins.cpd.CpdSensor.analyse(CpdSensor.java:80)
        at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:70)
        at org.sonar.batch.phases.Phases.execute(Phases.java:101)
        at org.sonar.batch.scan.ScanContainer.doStart(ScanContainer.java:147)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:65)
        at org.sonar.batch.scan.ScanTask.scanRecursively(ScanTask.java:56)
        at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:49)
        at org.sonar.batch.bootstrap.TaskContainer.doStart(TaskContainer.java:188)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.bootstrap.TaskBootstrapContainer.executeTask(TaskBootstrapContainer.java:73)
        at org.sonar.batch.bootstrap.TaskBootstrapContainer.doStart(TaskBootstrapContainer.java:62)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.bootstrap.BootstrapContainer.doStart(BootstrapContainer.java:104)
        at org.sonar.batch.bootstrap.Container.start(Container.java:72)
        at org.sonar.batch.bootstrapper.Batch.startBatch(Batch.java:88)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:72)
        at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:45)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:75)
        at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:63)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:57)
        at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
        at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:71)
        at org.sonar.runner.api.Runner.execute(Runner.java:89)
        at org.sonar.runner.Main.executeTask(Main.java:70)
        at org.sonar.runner.Main.execute(Main.java:59)
        at org.sonar.runner.Main.main(Main.java:41)
Skipping e:\Development\mistral\PMC\trunk\AppServer\ApplicationDistributionScheduler\Logic\ApplicationDistributionRequestProcessor.cs due to parse error
问题是,我已将sourceEncoding设置为UTF-8,但引发错误的文件也用UTF-8编码(见下文):


这些可能是简单的初学者错误,但我找不到快速/简单的解决方法。你能帮我上路吗

扫描.doc文件是因为其文件名以“c”结尾

C++插件的默认源后缀为:CXX、CPP、CC、C< 请注意,其中没有任何点“.”字符。因此,任何文件名以“c”字符结尾的文件都将被采用:abc、ab.c、a.bc。这同样适用于其他后缀

如果您想要精确的后缀,您需要使用如下内容:

sonar.cxx.suffixes.sources=.cxx,.cpp,.cc,.c

谢谢你把这件事弄清楚。剩下的就是词汇错误问题
sonar.cxx.suffixes.sources=.cxx,.cpp,.cc,.c