【发布时间】:2021-03-04 19:08:01
【问题描述】:
我正在尝试将 SonarQube 与 Jenkins 集成。以下是我已经完成的步骤
- 安装了插件“SonarQube Scanner for Jenkins”
- 将 SonarQube 版本配置为 5.2 且没有任何凭据的系统
- 通过 Jenkins->Global Tool Configuration 启用了 SolarQuber 2.6.1 版的自动安装
- 在构建过程中启用了 SonarQube。
出现以下错误。不知道发生了什么。我在互联网上搜索,每个人都提到了以上四个步骤。我是否遗漏了什么,请注意端口号 9000 已启用。请帮我解决它
INFO: SonarQube Scanner 2.6.1
INFO: Java 1.8.0_45 Oracle Corporation (64-bit)
INFO: Linux 3.13.0-91-generic amd64
INFO: Error stacktraces are turned on.
INFO: User cache: /var/lib/jenkins/.sonar/cache
ERROR: SonarQube server [http://localhost:9000] can not be reached
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 0.216s
INFO: Final Memory: 3M/121M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
org.sonarsource.scanner.api.internal.ScannerException: Unable to execute SonarQube
at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory$1.run(IsolatedLauncherFactory.java:84)
at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory$1.run(IsolatedLauncherFactory.java:71)
at java.security.AccessController.doPrivileged(Native Method)
at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:71)
at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:67)
at org.sonarsource.scanner.api.EmbeddedScanner.doStart(EmbeddedScanner.java:218)
at org.sonarsource.scanner.api.EmbeddedScanner.start(EmbeddedScanner.java:156)
at org.sonarsource.scanner.cli.Main.execute(Main.java:70)
at org.sonarsource.scanner.cli.Main.main(Main.java:60)
Caused by: java.lang.IllegalStateException: Fail to download libraries from server
at org.sonarsource.scanner.api.internal.Jars.downloadFiles(Jars.java:93)
at org.sonarsource.scanner.api.internal.Jars.download(Jars.java:70)
at org.sonarsource.scanner.api.internal.JarDownloader.download(JarDownloader.java:39)
at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory$1.run(IsolatedLauncherFactory.java:75)
... 8 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.Platform.connectSocket(Platform.java:101)
at org.sonarsource.scanner.api.internal.shaded.okhttp.Connection.connectSocket(Connection.java:198)
at org.sonarsource.scanner.api.internal.shaded.okhttp.Connection.connect(Connection.java:172)
at org.sonarsource.scanner.api.internal.shaded.okhttp.Connection.connectAndSetOwner(Connection.java:358)
at org.sonarsource.scanner.api.internal.shaded.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:117)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:329)
at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:246)
at org.sonarsource.scanner.api.internal.shaded.okhttp.Call.getResponse(Call.java:276)
at org.sonarsource.scanner.api.internal.shaded.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:234)
at org.sonarsource.scanner.api.internal.shaded.okhttp.Call.getResponseWithInterceptorChain(Call.java:196)
at org.sonarsource.scanner.api.internal.shaded.okhttp.Call.execute(Call.java:79)
at org.sonarsource.scanner.api.internal.ServerConnection.callUrl(ServerConnection.java:114)
at org.sonarsource.scanner.api.internal.ServerConnection.downloadString(ServerConnection.java:99)
at org.sonarsource.scanner.api.internal.Jars.downloadFiles(Jars.java:78)
... 11 more
【问题讨论】:
-
您的声纳服务器正在运行吗?错误:SonarQube 服务器 [localhost:9000] 无法访问
-
问题是你是否从 docker 运行 Jenkins(并且可能是 Sonar)。如果是,那么您应该开始使用 docker-compose 来启动两者,并为具有网桥类型的服务使用公共网络。然后您可以使用
http://sonar-service-name:9000从 Jenkins 访问 SonarQube 服务器