Sonarqube 无法使用Hybris运行声纳
我是SonarQube的新手,尝试一次完成所有扩展的分析。我可以单独为扩展成功运行它,但当我使用hybris运行“ant sonar”时,它会给我以下异常:Sonarqube 无法使用Hybris运行声纳,sonarqube,hybris,sonarqube-scan,Sonarqube,Hybris,Sonarqube Scan,我是SonarQube的新手,尝试一次完成所有扩展的分析。我可以单独为扩展成功运行它,但当我使用hybris运行“ant sonar”时,它会给我以下异常: [echo] - sonar.jdbc.url : ${sonar.jdbc.url} [echo] - sonar.projectName : Superproject [echo] - sonar.project.key : superprojectkey [echo] - sonar.proj
[echo] - sonar.jdbc.url : ${sonar.jdbc.url}
[echo] - sonar.projectName : Superproject
[echo] - sonar.project.key : superprojectkey
[echo] - sonar.project.version : 1.0
[echo] - sonar.excludedExtensions :
[echo] - sonar.language : java
[echo] *************************************************
[echo]
r:sonar] Apache Ant(TM) version 1.9.1 compiled on May 15 2013
r:sonar] Sonar Ant Task version: 2.1
r:sonar] Loaded from: file:/E:/hybris/bin/platform/resources/ant
r:sonar] INFO: Default locale: "en_IN", source code encoding: "UTF-8"
r:sonar] INFO: Work directory: E:\hybris\bin\platform\.sonar
r:sonar] ERROR: Sonar server 'http://localhost:9000' can not be reached
E:\\hybris\bin\platform\resources\ant\sonar.xml:84: org.sonar.runner.kevinsawicki.Ht
at org.sonar.runner.kevinsawicki.HttpRequest.code(HttpRequest.java:1392)
at org.sonar.runner.kevinsawicki.HttpRequest.ok(HttpRequest.java:1417)
at org.sonar.runner.impl.ServerConnection.downloadString(ServerConnection.java:83)
at org.sonar.runner.impl.ServerVersion.downloadVersion(ServerVersion.java:49)
at org.sonar.runner.impl.ServerVersion.version(ServerVersion.java:40)
at org.sonar.runner.impl.ServerVersion.is35Compatible(ServerVersion.java:64)
at org.sonar.runner.impl.JarDownloader.download(JarDownloader.java:39)
at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:59)
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.ant.SonarTask.launchAnalysis(SonarTask.java:53)
at org.sonar.ant.SonarTask.execute(SonarTask.java:48)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:396)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
at org.apache.tools.ant.Main.runBuild(Main.java:851)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Caused by: java.net.ConnectException: Connection refused: connect
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1890)
at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1885)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1884)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1457)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at org.sonar.runner.kevinsawicki.HttpRequest.code(HttpRequest.java:1390)
... 44 more
我知道这是一个配置问题,但我找不到日志中显示的文件。
另外,为什么它需要JDBCURL
谢谢。您确定Sonarqube服务器已启动吗?也许可以手动启动它,并确保在访问locallhost:9000/about时它在浏览器中可见。
由于根本问题是Sonar服务器不可用,因此我希望…Sonar主机URL是通过名为Sonar.Host.URL的属性配置的 在我不久前正在工作的项目中,此属性在hybris\config\local.properties中设置 与信息相关:工作目录:E:\hybris\bin\platform.sonar已记录,
我认为可以使用sonar.working.directory设置工作目录,如果未设置,则会以某种方式计算为您在日志中看到的目录(即hybris\bin\platform.sonar)我只是写下我们在项目中使用的方法——不完全像我们用gradle包装ant那样,而是写下我们如何进行和配置一切 我们使用的不是蚂蚁声纳扫描仪,而是格雷德尔声纳扫描仪[1]或詹金斯声纳扫描仪[2],因此在这种情况下,您实际上可以使用声纳扫描仪[3] 配置声纳属性: 您可以轻松地将项目根目录中的所有配置放入名为
sonar project.properties
的文件中
sonar.host.url=<sonar url>
sonar.projectKey=<project key>
sonar.projectName=<project name>
# you could use here java as language, but if you also want to analyse JS and other languages remove it, and adapt the source path to add those too
sonar.language=java
sonar.sources=<path-to-extension>/src,\
<path-to-extension>/hmc/src,\
<path-to-extension>/web/src,\
sonar.tests=<path-to-extension>/testsrc
sonar.java.binaries=**/classes
sonar.java.libraries=**/*.jar
sonar.java.test.binaries=**/classes
sonar.java.test.libraries=**/*.jar
sonar.host.url=
声纳.投影键=
sonar.projectName=
#您可以在这里使用java作为语言,但如果您还想分析JS和其他语言,请删除它,并调整源路径以添加这些语言
language=java
sonar.sources=/src\
/hmc/src
/web/src\
sonar.tests=/testsrc
sonar.java.binaries=**/classes
sonar.java.libraries=***/.jar
sonar.java.test.binaries=**/classes
sonar.java.test.libraries=***.jar
sonar project.properties
文件位于项目的根目录中,并指向正确的文件
承认
我知道这不是默认的hybris方式,也不是使用hybris的ant目标,但我发现,这种方式比默认方式给了我更多的灵活性
[1]
[2]
[3] 您的SonarQube服务器是什么版本的?嗨,G.Ann。这是6.5,你能把你的蚂蚁配置和目标包括进来吗?我想我们也没有幸运的发现hybris声纳的蚂蚁目标->幸运的是,我们有我们自己的整个hybris“蚂蚁”包装器-东西可以使用但在您的情况下,看起来您没有正确定义服务器。。。因为它试图连接到您的本地主机。关于JDBCURL-hybris有一些非常古老的代码“jalo”,因此在生成该代码时,可能会使用4.5LTS,而此时该属性已经存在。现在,您只需要提供您的sonar url->如果您真的想对代码进行分析,我建议您使用gradle或jenkinsrunner@SimonSchrottner,这是我不知道该怎么做的。它说工作目录在hybris包结构下的某个地方,但我找不到,因此我可以提供sonar服务器url。