SonarQube MSBuild运行程序和scm根目录

SonarQube MSBuild运行程序和scm根目录,msbuild,sonarqube,Msbuild,Sonarqube,你好 今天我与ms build runner和mercurial scm provider一起安装了sonarqube 我有存储库的下一个结构(示意图): 所有的分析都很好,但scm不起作用(我看到类似“缺少以下文件的错误信息:”) 当我看到generated sonar-project.properties时,我发现问题出在projectBaseDir中——它分别为解决方案中的每个项目生成 我尝试在命令行中指定/d:sonar.projectBaseDir=。。。但没有改变——它完全被忽略了

你好 今天我与ms build runner和mercurial scm provider一起安装了sonarqube 我有存储库的下一个结构(示意图):

所有的分析都很好,但scm不起作用(我看到类似“缺少以下文件的错误信息:”)

当我看到generated sonar-project.properties时,我发现问题出在projectBaseDir中——它分别为解决方案中的每个项目生成

我尝试在命令行中指定/d:sonar.projectBaseDir=。。。但没有改变——它完全被忽略了

所以我的问题是-我可以将ms build runner和scm provider与我的存储库结构一起使用吗

更新1 我在脚本中添加了详细标志。。 现在,我使用下一个命令运行分析:

MSBuild.SonarQube.Runner begin /n:projectName /k:projectKey /v:1.0 /d:sonar.scm.enabled=true /d:sonar.scm.provider=hg /d:sonar.projectBaseDir=d:\work\project1 /d:sonar.verbose=true
msbuild project1\src\solution.sln /p:Configuration=Debug
msbuild.sonarqube.runner end
在日志中,我可以看到以下消息:

[14:18:20] :     [Step 4/4] 14:18:20.403 DEBUG: Working directory: D:\work\project1\src\
[14:18:20] :     [Step 4/4] 14:18:20.416 DEBUG: Executing: hg blame -w -v --user --date --changeset API/AssignmentsController.cs
[14:18:20] :     [Step 4/4] 14:18:20.423 DEBUG: Executing: hg blame -w -v --user --date --changeset API/Commands/ImportCommand.cs
[14:18:20] :     [Step 4/4] 14:18:20.424 DEBUG: Executing: hg blame -w -v --user --date --changeset API/Dto/Assignment.cs
[14:18:20] :     [Step 4/4] 14:18:20.600 DEBUG: The mercurial blame command [hg blame -w -v --user --date --changeset API/AssignmentsController.cs] failed: abort: no repository found in 'D:\work\project1\src\' (.hg not found)!
[14:18:20] :     [Step 4/4] 
这就在文件夹d:\work\project1\src no.hg目录中,因为它位于d:\work\project1中

更新2


好的,我终于发现我的错误了。。。由于某些原因,在生成计算机文件夹.hg时丢失…

这是的限制。它目前希望在basedir中准确地找到.hg文件夹。其他插件,如SVN,可以在父文件夹中递归查找

我们不再积极开发Mercurial插件,但是可以提交一个请求来解决这个问题


作为一种解决方法,您可以在开始步骤中使用
/d:sonar.SCM.provider=hg
强制SCM。

这是一个限制。它目前希望在basedir中准确地找到.hg文件夹。其他插件,如SVN,可以在父文件夹中递归查找

我们不再积极开发Mercurial插件,但是可以提交一个请求来解决这个问题


作为一种解决方法,您可以在开始步骤中使用
/d:sonar.SCM.provider=hg
强制SCM。

项目位于何处?SonarQube根项目baseDir被计算为您的解决方案引用的所有项目的共同祖先。在每个prj.*中找到了每个模块的csproj文件,我还找到了有关共同祖先的信息,但在生成的.properties文件中,我可以看到baseDir设置为src\prj.infrastructure、src\prj.domain等等。。。但事件公共祖先并不是我的问题的答案——因为comon祖先是src,而.hg dir位于src的父级中……您的项目位于哪里?SonarQube根项目baseDir被计算为您的解决方案引用的所有项目的共同祖先。在每个prj.*中找到了每个模块的csproj文件,我还找到了有关共同祖先的信息,但在生成的.properties文件中,我可以看到baseDir设置为src\prj.infrastructure、src\prj.domain等等。。。但事件公共祖先不是我的答案-因为comon祖先是src,并且.hg dir位于src的父级中…我已经将此参数添加到命令中,但我收到了“以下文件缺少错误信息:”消息…分析的完整日志(带有
/d:sonar.verbose=true
)我已经在命令中添加了这个参数,但是我收到了“缺少以下文件的错误信息:”消息…完整的分析日志(带有
/d:sonar.verbose=true
)会有所帮助
MSBuild.SonarQube.Runner begin /n:projectName /k:projectKey /v:1.0 /d:sonar.scm.enabled=true /d:sonar.scm.provider=hg /d:sonar.projectBaseDir=d:\work\project1 /d:sonar.verbose=true
msbuild project1\src\solution.sln /p:Configuration=Debug
msbuild.sonarqube.runner end
[14:18:20] :     [Step 4/4] 14:18:20.403 DEBUG: Working directory: D:\work\project1\src\
[14:18:20] :     [Step 4/4] 14:18:20.416 DEBUG: Executing: hg blame -w -v --user --date --changeset API/AssignmentsController.cs
[14:18:20] :     [Step 4/4] 14:18:20.423 DEBUG: Executing: hg blame -w -v --user --date --changeset API/Commands/ImportCommand.cs
[14:18:20] :     [Step 4/4] 14:18:20.424 DEBUG: Executing: hg blame -w -v --user --date --changeset API/Dto/Assignment.cs
[14:18:20] :     [Step 4/4] 14:18:20.600 DEBUG: The mercurial blame command [hg blame -w -v --user --date --changeset API/AssignmentsController.cs] failed: abort: no repository found in 'D:\work\project1\src\' (.hg not found)!
[14:18:20] :     [Step 4/4]