得到 java.lang.IllegalStateException:无法在 Azure Devops 中使用 SonarQube 下载插件错误

Got java.lang.IllegalStateException: Fail to download plugin error using SonarQube in Azure Devops

我使用SonarQube的过程:

  1. 我在 Azure App Service 中安装了 SonarQube 并通过 StartSonar.bat。
  2. 添加新项目并生成令牌。
  3. 使用令牌在 Azure Devops 中添加服务连接。
  4. 使用 https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-azure-devops/ 提供的流程在管道中添加 SonarQube 任务。

当我运行这个管道时,我得到java.lang.IllegalStateException: Fail to download plugin error in SonarQubeAnalyze task,如下所示:

ERROR: Error during SonarQube Scanner execution java.lang.IllegalStateException: Fail to download plugin [kotlin] into C:\Users\VssAdministrator.sonar_tmp\fileCache6519814482966957451.tmp at org.sonar.scanner.bootstrap.PluginFiles.downloadBinaryTo(PluginFiles.java:152) at org.sonar.scanner.bootstrap.PluginFiles.download(PluginFiles.java:108) at org.sonar.scanner.bootstrap.PluginFiles.get(PluginFiles.java:89) at org.sonar.scanner.bootstrap.ScannerPluginInstaller.loadPlugins(ScannerPluginInstaller.java:77) at org.sonar.scanner.bootstrap.ScannerPluginInstaller.installRemotes(ScannerPluginInstaller.java:60) at org.sonar.scanner.bootstrap.ScannerPluginRepository.start(ScannerPluginRepository.java:59) 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)

日志显示错误是由java.net.SocketException引起的:连接重置(有时读取超时)

Caused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) at java.net.SocketInputStream.read(SocketInputStream.java:141) at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:593) at sun.security.ssl.InputRecord.read(InputRecord.java:532) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975) at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:933) at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)

我不知道这个错误是如何发生的,也不知道如何解决。

希望有人能帮帮我,谢谢。

请检查您的项目中是否添加了声纳插件。另外,将 sonar host url 和 token 属性添加到项目中并尝试一下。

对于行家:-

<sonar.host.url>sonar host url</sonar.host.url>
<sonar.login> token you generated on sonarqube server</sonar.login>

<plugin>
    <groupId>org.sonarsource.scanner.maven</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>3.7.0.1746</version>
</plugin>

我通过在 Azure 应用服务配置中打开 Web 套接字解决了这个问题。