是否可以在 sonar-project.properties 文件中使用环境变量
Posted
技术标签:
【中文标题】是否可以在 sonar-project.properties 文件中使用环境变量【英文标题】:Is it possible to use environment variable in sonar-project.properties file 【发布时间】:2016-12-22 16:29:03 【问题描述】:我正在通过 Jenkins 构建执行声纳,存在“src”位置根据构建而变化的用例,因此我想使用环境变量来指定“src”路径。
例如在 sonar-project.properties 中我想指定如下所示:
src= c:/project/workspace
我想改用src =$SONAR_RUN_WORKSPACE
【问题讨论】:
【参考方案1】:不,sonar-project.properties
不支持环境变量。无论如何,回到您的用例:您最好使用sonar.sources
的相对路径,这样,无论在何处运行分析(即使用 Jenkins 的任何工作区),始终可以在预期位置找到源(来自项目的基本目录) )。
【讨论】:
【参考方案2】:您不能将环境变量传递到 sonar-project.property 文件中。
如果你是从 jenkins 创建 sonar-project.property 文件,你可以使用 build with param。
(或)
创建一个不带 sonar.source 的 sonar-project.properties。
使用参数变量path创建构建,从用户那里获取每个构建的src路径,
在 sh 中使用 sonar.source=$path 映射变量。
使用 (>>) 或 jenkins 的 cmd 将 sonar.source 附加到 sh 中的每个构建的 sonar-project.properties。
例如)sonar.source="path" >> sonar-project.properties
最后工作空间包含带有 src 路径的 sonar-project.properties 文件。
【讨论】:
【参考方案3】:从 SonarQube Scanner 2.9 版开始,sonar-project.properties
支持环境变量(请参阅SQSCANNER-9)。
所以,现在应该可以了:
sonar.sources=$env.SONAR_RUN_WORKSPACE
【讨论】:
以上是关于是否可以在 sonar-project.properties 文件中使用环境变量的主要内容,如果未能解决你的问题,请参考以下文章
是否可以判断一个对象是否在不同的 AppDomain 中运行?
是否可以使用 JavaScript 确定 GeoJSON 点是否在 GeoJSON 多边形内?