SonarQube项目无法通过JavaScript配置文件进行分析

时间:2017-07-31 16:54:37

标签: javascript java css sonarqube

我们有两个Java Web应用程序项目由SonarQube的同一个实例(版本6.4)进行分析。这两个项目都有Java,JavaScript和CSS组件,我们希望对这些配置文件进行分析。

项目A已成功分析所有三种语言,而项目B仅针对Java进行分析。

全局设置几乎是开箱即用的,并且两个项目都没有任何项目特定的设置。

我们认为它不会产生任何影响,但是Project A是一个使用JSP的Spring MVC应用程序。项目B是使用Thymeleaf的Spring Boot应用程序。

项目A没有sonar.properties或sonar-project.properties文件。在项目B上,我们尝试了它没有任何属性,并且属性试图将它命名为sonar.properties和sonar-project.properties,它们将sonar.language设置为js单独或java,js,css,但似乎没有区别在行为中。

SonarsQube正在由Jenkins(版本2.61)开始使用SonarsQube Scanner for Jenkins(版本2.6.1)插件。

两个Jenkins项目都进行了类似的配置,并将Sonar分析作为Post Build Step开始:

$SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.login=$SQ_LOGIN -Dsonar.password=$SQ_PASSWORD

我们甚至尝试删除Sonar数据库并让Sonar重建它,但是Project B仍然只是针对Java进行分析。

编辑:我们希望项目B能够像项目A一样通过Java,JavaScript和CSS进行分析。

2 个答案:

答案 0 :(得分:1)

默认情况下,Maven分析不会将资源文件包含在分析中。您需要通过将sonar.sources覆盖为pom中的属性或在命令行上定义(-D)来手动执行此操作。我猜这已经在项目的pom中的属性中进行了扫描,就像你想要的那样。

答案 1 :(得分:0)

感谢G. Ann的回答,我得以解决类似的问题。在一个多模块Maven项目中,在几个Java模块中间,有一个适当地称为{'po1': 47}的模块,其中仅包含Web资源,例如HTML,CSS和JavaScript文件。这些来源在frontend中,而不在app中。为了使SonarQube分析这些Web资源,我在前端模块pom的src/main/web元素中添加了<sonar.sources>app</sonar.sources>。出乎意料的是,要使该构建适用于所有模块,我必须按构建顺序在下一个模块的pom中添加<properties />,以覆盖现在重新定义的默认值。