我想调查某个包中是否违反了某些规则和问题,但是,从我在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
中的问题和规则违规,包括目录中所有级别的代码文件。
我有办法做到这一点吗?
答案 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升级玩了几天后,我一般都喜欢用户界面的变化。