Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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不';t与Intellij社区合作2019.2_Sonarqube_Sonarlint_Sonarlint Intellij - Fatal编程技术网

SonarQube不';t与Intellij社区合作2019.2

SonarQube不';t与Intellij社区合作2019.2,sonarqube,sonarlint,sonarlint-intellij,Sonarqube,Sonarlint,Sonarlint Intellij,通过将项目绑定到SonarQube(安装了SonarJava 5.3(build 13828))服务器,我将SonarLint 4.1.1.3345与IntelliJ Community 2019.2版本一起使用。但是,我从Sonarint日志中得到了以下堆栈跟踪错误: Java Main Files AST scan 60 source files to be analyzed Unable to create symbol table for : C:\Users\username\Some

通过将项目绑定到SonarQube(安装了SonarJava 5.3(build 13828))服务器,我将SonarLint 4.1.1.3345与IntelliJ Community 2019.2版本一起使用。但是,我从Sonarint日志中得到了以下堆栈跟踪错误:

Java Main Files AST scan
60 source files to be analyzed
Unable to create symbol table for : C:\Users\username\SomeFile.java
java.lang.IllegalArgumentException: Unsupported class file major version 55
    at org.objectweb.asm.ClassReader.<init>(ClassReader.java:166)
    at org.objectweb.asm.ClassReader.<init>(ClassReader.java:148)
    at org.objectweb.asm.ClassReader.<init>(ClassReader.java:136)
    at org.sonar.java.resolve.BytecodeCompleter.loadClass(BytecodeCompleter.java:204)
    at org.sonar.java.resolve.Symbols.<init>(Symbols.java:176)
    at org.sonar.java.resolve.SemanticModel.createFor(SemanticModel.java:59)
    at org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:110)
    at org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:96)
    at org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:68)
    at org.sonar.java.JavaSquid.scanSources(JavaSquid.java:116)
    at org.sonar.java.JavaSquid.scan(JavaSquid.java:110)
    at org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:93)
    at org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.executeSensor(SensorsExecutor.java:81)
    at org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.execute(SensorsExecutor.java:72)
    at org.sonarsource.sonarlint.core.container.analysis.AnalysisContainer.doAfterStart(AnalysisContainer.java:132)
    at org.sonarsource.sonarlint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125)
    at org.sonarsource.sonarlint.core.container.ComponentContainer.execute(ComponentContainer.java:110)
    at org.sonarsource.sonarlint.core.container.storage.StorageAnalyzer.analyze(StorageAnalyzer.java:75)
    at org.sonarsource.sonarlint.core.container.storage.StorageContainerHandler.analyze(StorageContainerHandler.java:82)
    at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.lambda$analyze$0(ConnectedSonarLintEngineImpl.java:152)
    at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.withReadLock(ConnectedSonarLintEngineImpl.java:344)
    at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.withReadLock(ConnectedSonarLintEngineImpl.java:334)
    at org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.analyze(ConnectedSonarLintEngineImpl.java:149)
    at org.sonarlint.intellij.core.ConnectedSonarLintFacade.analyze(ConnectedSonarLintFacade.java:74)
    at org.sonarlint.intellij.core.SonarLintFacade.startAnalysis(SonarLintFacade.java:63)
    at org.sonarlint.intellij.analysis.SonarLintAnalyzer.analyzeModule(SonarLintAnalyzer.java:97)
    at org.sonarlint.intellij.analysis.SonarLintTask.analyze(SonarLintTask.java:176)
    at org.sonarlint.intellij.analysis.SonarLintTask.run(SonarLintTask.java:100)
    at org.sonarlint.intellij.analysis.SonarLintUserTask.run(SonarLintUserTask.java:39)
    at org.sonarlint.intellij.analysis.SonarLintJobManager.lambda$runTask$1(SonarLintJobManager.java:120)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:169)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:591)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:537)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:156)
    at org.sonarlint.intellij.analysis.SonarLintJobManager.lambda$runTask$2(SonarLintJobManager.java:120)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Java主文件AST扫描
需要分析的60个源文件
无法为以下内容创建符号表:C:\Users\username\SomeFile.java
java.lang.IllegalArgumentException:不支持的类文件主版本55
位于org.objectweb.asm.ClassReader(ClassReader.java:166)
位于org.objectweb.asm.ClassReader(ClassReader.java:148)
位于org.objectweb.asm.ClassReader(ClassReader.java:136)
位于org.sonar.java.resolve.BytecodeCompleter.loadClass(BytecodeCompleter.java:204)
位于org.sonar.java.resolve.Symbols。(Symbols.java:176)
位于org.sonar.java.resolve.SemanticModel.createFor(SemanticModel.java:59)
位于org.sonar.java.model.VisitorsBridge.visitFile(VisitorsBridge.java:110)
在org.sonar.java.ast.JavaAstScanner.simpleScan(JavaAstScanner.java:96)上
在org.sonar.java.ast.JavaAstScanner.scan(JavaAstScanner.java:68)上
位于org.sonar.java.JavaSquid.scanSources(JavaSquid.java:116)
位于org.sonar.java.JavaSquid.scan(JavaSquid.java:110)
位于org.sonar.plugins.java.JavaSquidSensor.execute(JavaSquidSensor.java:93)
位于org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.executeSensor(SensorsExecutor.java:81)
位于org.sonarsource.sonarlint.core.analyzer.sensor.SensorsExecutor.execute(SensorsExecutor.java:72)
位于org.sonarsource.sonarlint.core.container.analysis.AnalysisContainer.doAfterStart(AnalysisContainer.java:132)
位于org.sonarsource.sonarint.core.container.ComponentContainer.startComponents(ComponentContainer.java:125)
位于org.sonarsource.sonalint.core.container.ComponentContainer.execute(ComponentContainer.java:110)
位于org.sonarsource.sonarint.core.container.storage.StorageAnalyzer.analyze(StorageAnalyzer.java:75)
位于org.sonarsource.sonarlint.core.container.storage.StorageContainerHandler.analyze(StorageContainerHandler.java:82)
位于org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.lambda$analyze$0(ConnectedSonarLintEngineImpl.java:152)
位于org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.withReadLock(ConnectedSonarLintEngineImpl.java:344)
位于org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.withReadLock(ConnectedSonarLintEngineImpl.java:334)
位于org.sonarsource.sonarlint.core.ConnectedSonarLintEngineImpl.analyze(ConnectedSonarLintEngineImpl.java:149)
位于org.sonalint.intellij.core.ConnectedSonarLintFacade.analyze(ConnectedSonarLintFacade.java:74)
位于org.sonarlint.intellij.core.SonarLintFacade.startAnalysis(SonarLintFacade.java:63)
位于org.sonarlint.intellij.analysis.SonarLintAnalyzer.analyzeModule(SonarLintAnalyzer.java:97)
位于org.sonarlint.intellij.analysis.sonarlintask.analysis(sonarlintask.java:176)
位于org.sonarlint.intellij.analysis.sonarlintask.run(sonarlintask.java:100)
位于org.sonarlint.intellij.analysis.SonarLintUserTask.run(SonarLintUserTask.java:39)
位于org.sonarlint.intellij.analysis.SonarLintJobManager.lambda$runTask$1(SonarLintJobManager.java:120)
位于com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:169)
位于com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:591)
位于com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:537)
位于com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:59)
在com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:156)上
位于org.sonarlint.intellij.analysis.SonarLintJobManager.lambda$runTask$2(SonarLintJobManager.java:120)
位于java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
位于java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
位于java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
位于java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
位于java.base/java.lang.Thread.run(Thread.java:834)
“Unsupported class file major version 55”告诉我,用于代码分析的类文件Sonar适用于java 11版本,而我的类是用java 7编译的(我用同一个类并用javap运行它,它显示了major version 51),我的系统上甚至没有安装java 11

因为它对我的队友有效。唯一的区别是他们安装了较低版本的IntelliJ。所以我下载了IntelliJ 2019.1.4并开始工作


有人能解释一下为什么IntelliJ的更高版本不能使用它,以及为什么会出现上述错误吗?提前谢谢

这是IDE/Sonarint/plugin中关于类加载器的已知限制:

使用Sonarint的示例

在Sonarint IntelliJ运行环境中,这或多或少是 类路径层次结构:

JDK->IntelliJ类->Sonarint(+deps)[儿童优先]->Java 插件(+packated deps)[child first]->Squid[parent first]。所以 假设我们分析一个使用类X的类 类加载器碰巧也使用类X(相同的完全限定名), 这将代替分析类路径中提供的X, 即使它们是类的不同副本(不同版本, 例如)


谢谢@devwebcl,我还有一个后续问题:当我没有将项目绑定到远程SonarQube服务器时,即按照SonarLint的规则选项卡中定义的规则进行扫描,一切正常。为什么?我认为连接到SonarQube服务器模式意味着使用服务器上定义的规则/配置文件。我还试图删除目标文件夹,本地扫描仍然有效,所以它实际上编译了j