Sonarqube 具有环境变量的声纳特性

Sonarqube 具有环境变量的声纳特性,sonarqube,sonar-runner,Sonarqube,Sonar Runner,我们是否可以参考声纳项目中的环境变量。属性?例如: sonar.libraries=${env:WL_HOME}/server/lib/weblogic.jar 环境变量很有用,因为库依赖项位置在不同的机器和操作系统中可能不同 当我用Sonar Runner分析我的项目时,我遇到了下面的错误 ERROR: Error during Sonar runner execution org.sonar.runner.impl.RunnerException: Unable to execute So

我们是否可以参考声纳项目中的环境变量。属性?例如:

sonar.libraries=${env:WL_HOME}/server/lib/weblogic.jar
环境变量很有用,因为库依赖项位置在不同的机器和操作系统中可能不同

当我用Sonar Runner分析我的项目时,我遇到了下面的错误

ERROR: Error during Sonar runner execution
org.sonar.runner.impl.RunnerException: Unable to execute Sonar
        at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
        at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
        at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
        at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
        at org.sonar.runner.api.Runner.execute(Runner.java:100)
        at org.sonar.runner.Main.executeTask(Main.java:70)
        at org.sonar.runner.Main.execute(Main.java:59)
        at org.sonar.runner.Main.main(Main.java:53)
Caused by: java.lang.IllegalStateException: Unable to resolve path "${env:WL_HOME}/server/lib"
        at org.sonar.batch.scan.ProjectReactorBuilder.resolvePath(ProjectReactorBuilder.java:463)
        at org.sonar.batch.scan.ProjectReactorBuilder.getLibraries(ProjectReactorBuilder.java:449)
        at org.sonar.batch.scan.ProjectReactorBuilder.validateDirectories(ProjectReactorBuilder.java:299)
        at org.sonar.batch.scan.ProjectReactorBuilder.defineProject(ProjectReactorBuilder.java:131)
        at org.sonar.batch.scan.ProjectReactorBuilder.execute(ProjectReactorBuilder.java:114)
        at org.sonar.batch.scan.ProjectScanContainer.projectBootstrap(ProjectScanContainer.java:95)
        at org.sonar.batch.scan.ProjectScanContainer.doBeforeStart(ProjectScanContainer.java:72)
        at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:90)
        at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77)
        at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:56)
        at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:44)
        at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:82)
        at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92)
        at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77)
        at org.sonar.batch.bootstrap.BootstrapContainer.executeTask(BootstrapContainer.java:175)
        at org.sonar.batch.bootstrap.BootstrapContainer.doAfterStart(BootstrapContainer.java:163)
        at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92)
        at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77)
        at org.sonar.batch.bootstrapper.Batch.startBatch(Batch.java:92)
        at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:74)
        at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87)
        ... 9 more
Caused by: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
        at java.io.WinNTFileSystem.canonicalize0(Native Method)
        at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:414)
        at java.io.File.getCanonicalPath(File.java:618)
        at java.io.File.getCanonicalFile(File.java:643)
        at org.sonar.batch.scan.ProjectReactorBuilder.resolvePath(ProjectReactorBuilder.java:461)
        ... 34 more
我的环境:

  • SonarQube 4.3.2
  • SonarQube跑步者2.4
  • jdk1.7.0_65
  • Windows 7 Pro 32位

这还不受支持。您可以为以下票证投票:

使用Gradle中的sonnarqube插件对我来说很好:


属性“sonar.java.libraries”[System.getenv('ANDROID_HOME')+'/platforms/ANDROID-23/ANDROID.jar']

这仍然不受支持。作为一种解决方法,我使用
-D
选项设置变量属性

usage: sonar-runner [options]

Options:
 -D,--define <arg>     Define property

sonar-project.properties中的环境变量支持已添加到SonarQube扫描仪CLI 2.9中,请参阅

环境变量必须以前缀
env开头。
而不是
env:

将SonarQube升级到2.9+并将属性更新为正确的语法后,它应该能够正确分析项目。正确使用环境变量的示例:

sonar.libraries=${env.WL_HOME}/server/lib/weblogic.jar 

codehaus.org已不存在。有人有最新的链接到JIRA吗?嗯。。。如果我使用
-D
参数,那么
sonar project.properties
文件中的所有内容都将被忽略。我认为命令行提供的属性/值对将重写。
sonar.libraries=${env.WL_HOME}/server/lib/weblogic.jar