我想解决声纳日志中的警告:
INFO: Sensor Groovy JaCoCo [groovy]
INFO: Checking binary directory: /home/project/target/classes
INFO: Analysing /home/project/target/jacoco.exec
INFO: Analysing /home/project/target/jacoco.exec
WARN: File not found: utils/Rule.groovy
WARN: File not found: com/acme/manager/Command.groovy
WARN: File not found: com/acme/manager/util/YamlReader.groovy
WARN: File not found: steps/DeployTest.groovy
WARN: File not found: /deploy.groovy
我的设置是:
x.sonar.projectBaseDir=.
x.sonar.sources=src,vars
x.sonar.tests=test/groovy
x.sonar.test.exclusions=test/groovy/com/acme/manager
某些警告是由于排除文件(这些文件在另一个Sonar模块中进行评估)引起的。但是其他应该没有问题。知道这里出了什么问题吗?
在声纳中,我获得了src/com/acme/anything
下文件的覆盖,但没有覆盖vars
文件夹(default
包)中的文件。但是,在JaCoCo html报告中,我有default
软件包和vars
文件夹的内容。
答案 0 :(得分:1)
与此同时,我发现了某些消息的原因:
x
:由于sonar groovy plugin空软件包中的文件处理问题导致无法正确处理,请参见issue #73 File not found: /deploy.groovy
:要识别的测试文件必须列在File not found: steps/DeployTest.groovy
下。但是,如果将sonar.source
添加到tests/groovy
,则可能不会将其添加到sonar.source
,从而导致 GroovySurefireSensor中的资源问题: sonar.tests
答案 1 :(得分:0)
File not found
警告由SonarGroovy插件的AbstractAnalyzer.java类编写。据我了解,该插件已成功找到您的jacoco.exec结果(其中包含未能找到的文件路径,例如utils/Rule.groovy
)。
可能您没有正确设置sonar.sources
,它应该包括一个Groovy源代码的路径,并且如果您有Groovy源代码,还应该包括vars
文件夹。默认情况下,sonar.sources
仅设置为src
,因此可能找不到vars
文件夹的代码。您可以尝试将丢失的文件夹添加到这样的源中:
sonar.sources=src,vars
对于Groovy代码覆盖,还需要属性sonar.groovy.binaries
(它应指向已编译的groovy类文件),如果未明确设置,则将使用sonar.binaries
查找Groovy。二进制文件。来自SonarGroovy plugin网站的以下引用也可能会有所帮助:
在分析JaCoCo报告时,groovy插件需要访问源二进制文件。因此,必须为分析配置属性
sonar.groovy.binaries
(二进制文件夹的逗号分隔路径)。对于Maven和gradle项目,该属性会自动设置。