【问题标题】:How can SonarQube be used to view results for specific directories (packages) of a project?SonarQube 如何用于查看项目特定目录(包)的结果?
【发布时间】:2016-03-22 22:04:23
【问题描述】:

我想调查某个包中的某些规则和问题是如何被违反的,但是,从我在 SonarQube 的组件接口中看到的情况来看,只能查看叶节点目录并且我感兴趣查看整个文件夹,包括该文件夹中的子文件夹和文件。

例如

Project 
   src
      package1
         subdirectoryone
            done
               code-a.java 
            dtwo 
               code-x.java 
            dthree
               code-i.java 
            code-1.java
            code-2.java
         subdirectorytwo
      package2
         subdirone
         subdirtwo

在此示例中,我想调查subdirectoryone 中的问题和违反规则的情况,包括目录中所有级别的代码文件。

有什么办法可以做到吗?

【问题讨论】:

    标签: java sonarqube


    【解决方案1】:

    我使用这样的东西:

    <sonar.projectName>Some project name (com/your-directory only)</sonar.projectName>
    <sonar.exclusions>org/**/*, com/acme/**/*</sonar.exclusions>
    <sonar.test.exclusions>org/**/*, com/acme/**/*</sonar.test.exclusions>
    <sonar.sources>${project.build.sourceDirectory}/com/your-directory</sonar.sources>
    

    这排除了除我要分析的代码(排除属性)之外的所有内容,并将我的源目录定义为${project.build.sourceDirectory}/com/your-directory(这是我要分析的代码所在的位置)

    然后使用maven运行分析:

    mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent package -Dtest=com/your-directory/**/*Test.java
    

    (注意测试的-Dtest= 限制)


    部分阅读:http://docs.sonarqube.org/display/SONAR/Narrowing+the+Focus

    【讨论】:

    • 我明白了!我正在寻找的是一种在分析整个项目后缩小焦点的方法,即在 SonarQube 界面中“设置范围”的方法。我发现最接近的特性是 Code 选项卡(在 SQ5.3 和以前的版本中被命名为组件)。
    【解决方案2】:

    在 SonarQube 4.5 中,如果您从仪表板开始并单击问题链接,您将看到每个模块的所有问题。在严重性和规则列表下方的左侧框中是项目中所有模块和子模块的列表。如果您从该列表中选择,它会将中心框和右侧框缩小到该模块中的包和文件。不幸的是,它不会过滤顶部框中的规则或严重性。

    在 SonarQube 5.3 中,如果您转到问题选项卡,您可以选择左侧的模块复选框,然后从您的高分中进行选择。页面顶部附近是您选择的模块的层次结构,您可以单击该层次结构查看该模块或子模块的仪表板,然后单击该部分的问题。然后,如果您想要一个不在高级别的子模块中,请注意如果您小心并了解您的目标层次结构,则该 URL 是可编辑的。

    在 5.3 中我还没有找到比这更好的方法,但是在玩了最近的 5.3 升级后仅仅几天,我普遍喜欢 UI 的变化。

    【讨论】:

    • [...] 是什么意思 请注意,如果您仔细并了解目标层次结构,则该 URL 是可编辑的。 我以什么方式编辑 URL?能否进一步解释一下?
    • 经过进一步调查,我发现了你的意思!
    • 我发现,这不包括这个选定包下的文件夹和文件,你是否遇到同样的情况@Sinc?
    • 据我所知,它将向您显示软件包中所有违反它们的组件。我希望它能够显示包中的所有内容,包括子目录。在 5.3 中,如果您进入覆盖选项卡,您可能会看到更多文件,因为我希望它会显示所有文件,无论它们是否有问题,因为每个文件都应该有覆盖范围(即使它是零)。
    • 不是我需要的,但仍然很有帮助。
    猜你喜欢
    • 2019-08-05
    • 2012-11-11
    • 2016-12-18
    • 2022-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 1970-01-01
    • 2013-04-12
    相关资源
    最近更新 更多