如何使用SonarQube查看项目特定目录(包)的结果?

时间:2016-03-18 12:08:29

标签: java sonarqube

我想调查某个包中是否违反了某些规则和问题,但是,从我在SonarQube的Components-interface中看到的情况来看,它只能查看叶子节点目录,我感兴趣的是查看整个文件夹,包括该文件夹中的子文件夹和文件。

E.g。

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中的问题和规则违规,包括目录中所有级别的代码文件。

我有办法做到这一点吗?

2 个答案:

答案 0 :(得分:3)

我使用这样的东西:

<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

答案 1 :(得分:2)

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

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

我还没有找到比5.3更好的方法,但是在最近的5.3升级玩了几天后,我一般都喜欢用户界面的变化。