Javascript 如何从Sonar分析中排除已编译资源的子文件夹?

Javascript 如何从Sonar分析中排除已编译资源的子文件夹?,javascript,jenkins,sonarqube,Javascript,Jenkins,Sonarqube,我正在尝试将Sonarqube分析集成到我项目的JavaScript源代码中。这是一个使用Spring组件作为后端的项目,作为第一步,我们集成了Java源代码,没有任何问题 我们正在使用Sonarqube v5.6.3 我发现的问题来自sonar.exclusions属性。显然,该属性不能排除已添加为源的文件夹(请参阅) 我的pom.xml中有以下几行,它们工作不正常;根据上述问题,这是可以理解的: <sonar.sources>src/main/java,src/main/

我正在尝试将Sonarqube分析集成到我项目的JavaScript源代码中。这是一个使用Spring组件作为后端的项目,作为第一步,我们集成了Java源代码,没有任何问题

我们正在使用Sonarqube v5.6.3

我发现的问题来自
sonar.exclusions
属性。显然,该属性不能排除已添加为源的文件夹(请参阅)

我的pom.xml中有以下几行,它们工作不正常;根据上述问题,这是可以理解的:

    <sonar.sources>src/main/java,src/main/docker,js-sources</sonar.sources>
    <sonar.tests>src/test</sonar.tests>
    <sonar.exclusions>**/target/*</sonar.exclusions>
src/main/java,src/main/docker,js源代码
src/测试
**/目标/*
问题是:前端由几个模块组成,这些模块在一起部署到
src/main/webapp
之前,在各自的
/target
子文件夹下逐个编译。(它们作为常规目标文件夹工作:启动新编译时,这些文件夹将被删除/重新创建。)

那些
js-sources/moduleA/target
js-sources/moduleB/target
js-sources/moduleC/target
文件夹将自动包含为源,因此被排除指令忽略。这些目标文件夹仍然包含/src子文件夹,这使得很难使用有限的Sonar模式(不允许使用完整的xpath类选择器)仅包括或排除某些路径

由于我不认为Sonarqube团队希望每个人都逐个添加每个小文件夹(这就是他们在第一学期创建模式的原因),我正在寻求帮助:如何排除源文件中文件夹树下的每个模块目标文件夹?


另一种可能是,这是一种缺陷,迫使我们(在工作层面上)这样做,但我仍然不确定,仍然认为可以通过我声明来源和排除的方式来解决某些问题。

编辑:虽然包含在其他情况下很有用,但上面公认的答案是正确的。我将留下我的,如下所示,作为记录,并作为使用包含的示例

尝试使用包含而不是排除,我已经设置了一个与您的项目尽可能接近的项目,从您的描述中我可以猜到,并且我能够忽略js源模块的目标文件夹:

<properties>
    <sonar.sources>src/main/java,js-sources</sonar.sources>
    <sonar.inclusions>**/*.java, **/src/**/*.js</sonar.inclusions>
</properties>

src/main/java,js源代码
**/*.java,***/src/***.js
您可以这样理解:“扫描所有java文件,无论它们位于何处,只扫描根目录子文件夹的src中找到的javascript文件”

Try

 <sonar.exclusions>**/target/**/*</sonar.exclusions>
**/target/**/*

谢谢,@carlo!使用包含而不是排除的技巧似乎指向了正确的方向。问题在于,每个javascript模块的源代码和目标都位于
/src
子文件夹中(目标子文件夹还包含稍后部署的编译文件),并且由于允许使用的模式有限(在任何情况下都不是完整的xpath选择器),我开始觉得我没有办法过滤掉这些问题。解决方案从一开始就在手边!谢谢:)