我有一个Java项目,我正在Eclipse中开发并使用Maven构建。几乎所有的源包(在/ src中)都有一个相应的测试包(在/ tests中)。我希望我的SonarQube Maven构建只分析源包并忽略测试包。从文件系统中与/ src和/ tests相同级别的捆绑中的pom.xml
,我有类似于以下内容:
...
<profile>
<id>sonar</id>
...
<properties>
<sonar.skippedModules>**/tests/**</sonar.skippedModules>
</properties>
</profile>
...
<modules>
<module>../src/com.company.bundleA</module>
<module>../tests/com.company.bundleA.test</module>
...
</modules>
当我运行构建时,测试包中的源代码包含在SonarQube分析中。或者,我尝试使用sonar.test.exclusions
和sonar.exclusions
属性代替sonar.skippedModules
。使用排除属性,控制台输出显示已读取排除,但从未将任何文件与我尝试使用的表达式匹配。我还尝试在SonarQube Web服务器UI的“设置”部分中设置这些属性,并生成包含测试文件的相同结果。我能够成功地从分析中排除测试包的唯一方法是从模块列表中删除它们,或者在我的运行配置的目标字段中的-Dsonar.skippedModules
标志之后包含它们。但是,对于包含80多个捆绑包和140,000行代码的项目,这不是一个可维护的解决方案。 pom.xml
文件的组织有问题吗?这是我最好的猜测。
答案 0 :(得分:0)
首先,td.tinylink {width:75px;padding:15px 0;text-align:right;}
td.tinylink a {font-size:5px !important; color:red !important;}
不接受通配符模式 - 这可能是这不起作用的第一个原因。
其次,SonarQube 4.3中已弃用此属性,请参阅SONAR-5109。在最近的版本中,这被“sonar.skip”取代(见MSONAR-46)