如何在TeamCity上执行声纳

时间:2018-04-06 11:06:32

标签: sonarqube teamcity

我有一个包含多个步骤的TeamCity构建配置,我希望最后一步是Sonar。步骤是这样的:

  1. Maven clean deploy -DskipITs
  2. Maven verify
  3. Maven sonar:sonar
  4. 据我所知,这应该有效,因为Sonar不需要在同一个Maven反应堆中编译源。它确实有效。其他时候,我得到一些神秘的错误消息,如:

    [ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli) on project org.acme.project: Maven session does not declare a top level project -> [Help 1]
    

    OR

    [ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli) on project org.acme.project.build: Not inside a Git work tree: C:\TeamCity\buildAgent\work\9aeba6ee3e5dd34c\org.acme.project.it -> [Help 1]
    

    (项目org.acme.project.it当然是最后一个模块,因此Sonar之前已经分析了其他所有内容。)

    我检查了日志并将其与工作版本进行了比较。 不在Git工作树中的区别是添加以下行:

    [INFO] SCM provider for this project is: git
    

    对于 Maven会话未声明顶级项目,在调用Maven Sonar插件后立即失败:

    [09:55:46][Step 3/3] [INFO] --- sonar-maven-plugin:3.4.0.905:sonar (default-cli) @ org.acme.project ---
    [09:55:46][Step 3/3] [INFO] User cache: C:\Windows\system32\config\systemprofile\.sonar\cache
    [09:55:46][Step 3/3] [INFO] SonarQube version: 6.7.1
    [09:55:46][Step 3/3] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli) on project org.acme.project: Maven session does not declare a top level project
    

    这两条错误消息的信息非常少,而且两者的谷歌搜索结果都很稀疏。

    但是,如果我使用Maven命令clean verify sonar:sonar,一切正常。 (但由于错误信息不可重现,这可能是巧合。)

    如何在TeamCity中创建可重现的Sonar构建?

0 个答案:

没有答案