docker中的jenkins+sonarqube 这些坑啊

配置这边就不详细写了  主要 写一些报错点  如果要配置的话 可以点击传送门https://www.jianshu.com/p/f11fbd1c316e

我的是在docker中配置的  对于docker中的一些步骤可以看我的docker中集成jenkins和sonarqube

 

[qmkx] $ sonar-scanner scan -X -e -Dsonar.host.url=192.168.1.194:9000 ******** -Dsonar.language=java -Dsonar.projectName=qmkx -Dsonar.projectVersion=1.0 -Dsonar.projectKey=qmkx -Dsonar.sources=/var/jenkins_home/workspace/qmkx/qmkx-service-user/src -Dsonar.java.binaries=/var/jenkins_home/workspace/qmkx/qmkx-service-user/target/test-classes/ -Dsonar.projectBaseDir=/var/jenkins_home/workspace/qmkx
------------------------------------------------------------------------
SONAR ANALYSIS FAILED
------------------------------------------------------------------------
FATAL: command execution failed.
java.io.IOException: Cannot run program "sonar-scanner" (in directory "/var/jenkins_home/workspace/qmkx"): error=2, No such file or directory
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
	at hudson.Proc$LocalProc.<init>(Proc.java:245)
	at hudson.Proc$LocalProc.<init>(Proc.java:214)
	at hudson.Launcher$LocalLauncher.launch(Launcher.java:850)
	at hudson.Launcher$ProcStarter.start(Launcher.java:384)
	at hudson.Launcher$ProcStarter.join(Launcher.java:395)
	at hudson.plugins.sonar.SonarRunnerBuilder.executeSonarQubeScanner(SonarRunnerBuilder.java:336)
	at hudson.plugins.sonar.SonarRunnerBuilder.perform(SonarRunnerBuilder.java:307)
	at hudson.plugins.sonar.SonarRunnerBuilder.perform(SonarRunnerBuilder.java:261)
	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:735)
	at hudson.model.Build$BuildExecution.build(Build.java:206)
	at hudson.model.Build$BuildExecution.doRun(Build.java:163)
	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:490)
	at hudson.model.Run.execute(Run.java:1735)
	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
	at hudson.model.ResourceController.execute(ResourceController.java:97)
	at hudson.model.Executor.run(Executor.java:405)
Caused by: java.io.IOException: error=2, No such file or directory
	at java.lang.UNIXProcess.forkAndExec(Native Method)
	at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
	at java.lang.ProcessImpl.start(ProcessImpl.java:134)
	at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
	... 17 more
ERROR: SonarQube scanner exited with non-zero code: -1
Finished: FAILURE

第一个问题   这种一般是写错了自己的scanner地址   如果不是在docker中搭建直接找地址 填写到jenkins构建中就行(这个填写地方后面会说到)如果在docker中配置的  就去看自己映射出来的目录   改成那个目录即可  我这边有个简单粗暴的方式  直接写点  sonar.sources=.   这个后面会有截图 大家不用着急

[INFO] ------------------------------------------------------------------------
Unpacking https://repo1.maven.org/maven2/org/sonarsource/scanner/cli/sonar-scanner-cli/3.2.0.1227/sonar-scanner-cli-3.2.0.1227.zip to /var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/sonarqube on Jenkins
[qmkx] $ /var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/sonarqube/bin/sonar-scanner scan -X -e -Dsonar.host.url=http://192.168.1.194:9002/ ******** -Dsonar.language=java -Dsonar.projectName=qmkx -Dsonar.projectVersion=1.0 -Dsonar.projectKey=qmkx -Dsonar.sources=. -Dsonar.projectBaseDir=/var/jenkins_home/workspace/qmkx
12:02:00.831 INFO: Option -e/--errors is no longer supported and will be ignored
12:02:00.843 INFO: Scanner configuration file: /var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/sonarqube/conf/sonar-scanner.properties
12:02:00.845 INFO: Project root configuration file: NONE
12:02:00.863 INFO: SonarQube Scanner 3.2.0.1227
12:02:00.863 INFO: Java 1.8.0_171 Oracle Corporation (64-bit)
12:02:00.864 INFO: Linux 3.10.0-693.el7.x86_64 amd64
12:02:01.046 DEBUG: keyStore is : 
12:02:01.047 DEBUG: keyStore type is : jks
12:02:01.047 DEBUG: keyStore provider is : 
12:02:01.047 DEBUG: init keystore
12:02:01.047 DEBUG: init keymanager of type SunX509
12:02:01.123 DEBUG: Create: /var/jenkins_home/.sonar/cache
12:02:01.124 INFO: User cache: /var/jenkins_home/.sonar/cache
12:02:01.124 DEBUG: Create: /var/jenkins_home/.sonar/cache/_tmp
12:02:01.128 DEBUG: Extract sonar-scanner-api-batch in temp...
12:02:01.136 DEBUG: Get bootstrap index...
12:02:01.136 DEBUG: Download: http://192.168.1.194:9002/batch/index
12:02:01.166 ERROR: SonarQube server [http://192.168.1.194:9002] can not be reached
12:02:01.166 INFO: ------------------------------------------------------------------------
12:02:01.167 INFO: EXECUTION FAILURE
12:02:01.167 INFO: ------------------------------------------------------------------------
12:02:01.167 INFO: Total time: 0.330s
12:02:01.190 INFO: Final Memory: 6M/477M
12:02:01.190 INFO: ------------------------------------------------------------------------
12:02:01.190 ERROR: Error during SonarQube Scanner execution
org.sonarsource.scanner.api.internal.ScannerException: Unable to execute SonarQube
	at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.lambda$createLauncher$0(IsolatedLauncherFactory.java:85)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:74)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.createLauncher(IsolatedLauncherFactory.java:70)
	at org.sonarsource.scanner.api.EmbeddedScanner.doStart(EmbeddedScanner.java:167)
	at org.sonarsource.scanner.api.EmbeddedScanner.start(EmbeddedScanner.java:113)
	at org.sonarsource.scanner.cli.Main.execute(Main.java:73)
	at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.IllegalStateException: Fail to get bootstrap index from server
	at org.sonarsource.scanner.api.internal.BootstrapIndexDownloader.getIndex(BootstrapIndexDownloader.java:42)
	at org.sonarsource.scanner.api.internal.JarDownloader.getScannerEngineFiles(JarDownloader.java:58)
	at org.sonarsource.scanner.api.internal.JarDownloader.download(JarDownloader.java:53)
	at org.sonarsource.scanner.api.internal.IsolatedLauncherFactory.lambda$createLauncher$0(IsolatedLauncherFactory.java:76)
	... 7 more
Caused by: java.net.ConnectException: Failed to connect to /192.168.1.194:9002
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.RealConnection.connectSocket(RealConnection.java:225)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.RealConnection.connect(RealConnection.java:149)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:195)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:121)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.StreamAllocation.newStream(StreamAllocation.java:100)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:120)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:92)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:67)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.RealCall.getResponseWithInterceptorChain(RealCall.java:185)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.RealCall.execute(RealCall.java:69)
	at org.sonarsource.scanner.api.internal.ServerConnection.callUrl(ServerConnection.java:113)
	at org.sonarsource.scanner.api.internal.ServerConnection.downloadString(ServerConnection.java:98)
	at org.sonarsource.scanner.api.internal.BootstrapIndexDownloader.getIndex(BootstrapIndexDownloader.java:39)
	... 10 more
Caused by: java.net.ConnectException: Connection refused (Connection refused)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	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.Platform.connectSocket(Platform.java:124)
	at org.sonarsource.scanner.api.internal.shaded.okhttp.internal.connection.RealConnection.connectSocket(RealConnection.java:223)
	... 30 more
ERROR: SonarQube scanner exited with non-zero code: 1
Finished: FAILURE

这个报错有两个点  第一是服务器连不上 因为之前写9000端口也不行 我换成 9002还不行 最后换回去才好了 大家多试几次  然后 在我翻墙找了很多答案之后才看见一个  也不是很成熟的解决办法 :在系统管理——Global Tool Configuration中 

直接选择自动安装 这仅对docker中安装sonar适用 不在docker中装的也可以这样选择 但是不在docker中装的话自己安装Scanner 也知根知底 好维护

 

报错:Error during SonarQube Scanner execution

这个如果普通安装的话直接在项目的根目录中创建配置文件:sonar -project.properties即可   内容百度很多  在这里重点说docker中的sonar遇见这个问题   

附上一个很好的解决方法:

Method 1: If you installed a scanner in Jenkins then just add the following in this location on your job
Post Steps -> Execute SonarQube Scanner -> Analysis properties

sonar.projectKey=myProject1
sonar.sources=.
Method 2: Another alternative is using the deprecated method which still works fine Post-build Actions -> SonarQube analysis with Maven

Method 3: Build -> Goals and options -> "enter the below script" -Dmaven.test.skip=true install sonar:sonar -Dsonar.forceAnalysis=true -Dsonar.host.url=http://localhost:9000/ -Dsonar.branch=my-branch-1

用方法1即可   直接在最后添加方式1的两行即可

 

最后附上 整个的jenkins配置流程:

名字随便起   然后URL写浏览器能访问的sonar地址  去docker inspect 查一下sonar是哪个版本 5.3以上的是token   token获取在最上面的链接里  5.3以下的用户密码就行

这个之前说过了 这两个配置完成后就能在项目中配置了

重点来了  项目中的地方 这也是最上面说到的后面会说这个   之前有说过不在docker中安装的写一个sonar-project.properties文件   没有尝试过这些在sonar-project.properties文件中是否实用 大家可以尝试一下。

这一步走完就可以构建了  

最后再加一点  可能是中文报错  去sonar里面的配置中吧这个关掉就好了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值