我有一个jhipster项目,在项目中定义了一个sonarqube任务。我们在/src/main/ui/src/...目录下构建了一个react UI,并在/src/main/ui/src/test/...目录下进行了测试。我们的sonarqube属性如下:
sonarqube {
properties {
property "sonar.host.url", "https://our_sonar_server"
property "sonar.projectKey", "MyProjectGroup:MyProject"
property "sonar.projectName", "MyProject"
property "sonar.login", sonarLogin
property "sonar.password", sonarPassword
property "sonar.links.scm", "https://mygithub/myProject.git"
property "sonar.links.scm_dev", "https://mygithub/MyProject.git"
property "sonar.links.ci", ciLink
if (pullRequest != null) {
property "sonar.analysis.mode", "preview"
property "sonar.github.pullRequest", pullRequest
property "sonar.github.repository", "MyProjectGroup/MyProject"
property "sonar.github.oauth", "my_oauth_hash"
property "sonar.github.endpoint", "https://mygithubapi/v3"
}
}
}
我目前,声纳只拿起java是在标准/src/main/java.我已经尝试添加属性“sonar.sources”,“src/main/ui/src/*.js”属性“sonar.test”,“src/main/ui/src/test/**”以及一些变化.然而,jenkin build通过调用“./gradlew sonar-Pprod-x test”的shell步骤来调用它,但会失败,并出现类似“invalid value”或类似的错误。我找不到正确语法的例子。
编辑:我可以通过使用属性“sonar.sources”,“src/main/ui/src”属性“sonar.test”,“src/main/ui/src/test”来让声纳构建通过PR
然而,当在sonar服务器上检查项目时,我仍然没有看到任何被引用的javascript文件。
2条答案
按热度按时间kcrjzv8t1#
在合并我最后一次编辑后,js文件显示在sonarqube中。js测试也显示出来了,尽管它们没有显示任何覆盖率。只是单元测试的数量和通过率。可能需要更多的配置,但这不是最初问题的一部分。
在与我的经理交谈后,我们决定将源代码集缩小到两个子目录,“src/main/ui/src/app”和“src/main/ui/src/layouts”,这样测试就不会显示在源代码集下。文档建议您可以添加逗号分隔的列表,因此我创建了一个外部属性并在实际属性中引用了这些属性:
props评估正确,但sonar任务失败,错误为Could not find method property()for arguments [sonar.sources,src/main/ui/src/app,src/main/ui/src/layout on org. sonarqube. gradle. SonarQubeProperties.
然后,我进行了重构,将逗号分隔的列表放在一个属性中,然后成功完成了重构。
fruv7luv2#
您可以尝试定义自定义源集:https://docs.sonarqube.org/latest/analyzing-source-code/scanners/sonarscanner-for-gradle/#custom-source-sets