Powershell 如何使用Sonar-Runner.bat动态设置ProjectVersion
是否有一种方法可以使用sonar runner动态更新每个构建的项目版本,而无需每次手动更新sonar-project.properties文件? (注意:这适用于非mavenized.NET MVC应用程序) 试图参数化属性文件,使其自动引用环境变量集 添加在sonar-runner.bat中 对于/f“delims=“%%i in('hg identify-n'),请设置hg_LOCAL_REV=%%i 改进型声纳-project.properites sonar.projectVersion=%HG_LOCAL_REV%#不想手动更新此 如果我们可以将projectVersion作为sonar runner的参数传递,那就太好了。bat启动sonar runner时,您可以从sonar-project.properties中删除“sonar.projectVersion”,并将该值作为命令行参数传递:Powershell 如何使用Sonar-Runner.bat动态设置ProjectVersion,powershell,parameters,sonarqube,sonar-runner,Powershell,Parameters,Sonarqube,Sonar Runner,是否有一种方法可以使用sonar runner动态更新每个构建的项目版本,而无需每次手动更新sonar-project.properties文件? (注意:这适用于非mavenized.NET MVC应用程序) 试图参数化属性文件,使其自动引用环境变量集 添加在sonar-runner.bat中 对于/f“delims=“%%i in('hg identify-n'),请设置hg_LOCAL_REV=%%i 改进型声纳-project.properites sonar.projectVersio
sonar runner-Dsonar.projectVersion=“something”
我决定创建一个简单的模板文件作为快速解决方法。
只需在模板文件中搜索/替换唯一字符串,并保存到项目的新sonar-project.properties文件
以下是一些示例代码,以防有人感兴趣:
$hg_version = hg identify -n
(get-content {C:\dev\myProj\sonar-project.template | foreach-object {$_ -replace "my_proj_version", $hg_version}) | set-content c:\dev\myProj\sonar-project.properties
sonar-runner
希望这有助于其他人找到这个 注意:Sonar runner(在原始帖子中提到)已被弃用并替换为 这是使用TeamCity(2017.1.4版)和SonarQube扫描仪(2.9.0.670版)的iOS(Swift)项目的工作配方。我在这里添加它,作为将来对我自己的参考,以防其他人需要它: 声纳项目。属性
- 添加行:
sonar.projectVersion=${env.APP_VERSION}-快照
- 定义一个名为:
+的环境变量,添加其他参数,如APP\u VERSION
,以避免将源代码与实例版本、密码等耦合sonar.host.url
- 添加脚本(确保用文件夹的真实名称替换
:$MY\u APP\u FOLDER$
echo“##teamcity[setParameter name='env.APP_VERSION'value='$”(/usr/libexec/PlistBuddy-c“Print:CFBundleShortVersionString”“$MY_APP_FOLDER$/Info.plist”)”
- 添加脚本(假设develope是报告给SonarQube的分支):
如果[%teamcity.build.branch%=“开发”] 然后 SONAR_RUNNER_OPTS=-Xmx1024m声纳扫描仪-e\ -Dsonar.host.url=%system.sonar.host.url%\ -Dsonar.login=%system.sonar.login%\ -Dsonar.password=%system.sonar.password%\ -Dsonar.cfamily.build wrapper output.bypass=true fi