我有sonarqube服务器4.0和sonar-ant-task-2.1.我的声纳目标在我当地的RHEL 5机器上运行良好,但是一旦我将它升级到共享的RHEL 5环境,它将由主目录为"/ dev/null"的用户运行.我无法改变这一点.
我收到以下错误:无法创建用户缓存/ dev/null/.sonar/cache引起:java.io.IOException:无法创建目录/dev/null/.sonar/cache
我设置了以下两个属性:
这些属性似乎在本地具有所需的影响,但是当在共享环境中运行时,不使用sonar.userHome.我犯了同样的错误.它正在尝试使用/ dev/null.
如何让声纳停止尝试访问此缓存的/ dev/null?
错误描述如下.Jira任务创建了https://jira.codehaus.org/browse/SONARPLUGINS-3349
默认的Sonar缓存目录路径是: System.getProperty("user.home") + File.separator + ".sonar"
SONAR_USER_HOME
运行前设置环境变量mvn sonar:sonar
.
Bash示例: SONAR_USER_HOME=/my/path/.sonar mvn sonar:sonar
不幸的是,这个名字SONAR_USER_HOME
具有误导性 - 它不能代替user.home
; 它是完整的缓存目录路径.要复制默认行为,以下内容在Bash中就足够了:SONAR_USER_HOME=$HOME/.sonar mvn sonar:sonar
参考:https://github.com/SonarSource/sonarqube/blob/1f231f2cfcd47e66ca818cd1a8cbd93cc89af45d/sonar-home/src/main/java/org/sonar/home/cache/FileCacheBuilder.java