声纳不使用项目 pom.xml 中的 excludeFilterFile

Posted

技术标签:

【中文标题】声纳不使用项目 pom.xml 中的 excludeFilterFile【英文标题】:Sonar do not use the excludeFilterFile from the projects pom.xml 【发布时间】:2011-01-15 15:45:55 【问题描述】:

我在我的项目 pom.xml 中配置了 findbugs(和 checkstyle):

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>2.3</version>
        <configuration>
            <xmlOutput>true</xmlOutput>
            <threshold>Normal</threshold>
            <effort>Max</effort>
            <debug>false</debug>
            <excludeFilterFile>$basedir/src/test/config/findbugs-exclude.xml</excludeFilterFile>
        </configuration>
    </plugin>

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.4</version>
        <configuration>
            <suppressionsLocation>$basedir/src/test/config/checkstyle-surpressions.xml</suppressionsLocation>
            <testFailureIgnore>false</testFailureIgnore>
        </configuration>
    </plugin>

    <!--.......-->
</plugins>

这就像一个魅力。 'mvn site' 生成正确使用指定 excludeFileterFile 的 finbugs 报告。

问题是当我尝试使用声纳插件时。 ('mvn 声纳:声纳') 声纳不使用上面指定的排除过滤器。 (但它会正确使用 checkstyle 抑制文件)。

运行“mvn sonar:sonar”时来自控制台的信息: 警告:备用用户设置文件:C:\Users\rgi.m2\settings.xml 无效。使用默认路径。

[INFO] Scanning for projects...  
[INFO] ------------------------------------------------------------------------  
....  
[INFO] [findbugs:findbugs execution: default-cli]   
[INFO]   Using source root:  
[INFO]     <...edit...>\target\classes  
[INFO]   Using test source root:  
[INFO]     <...edit...>\target\test-classes  
[INFO]   Using maximum effort.  
[INFO]   Adding Source Directory: <...edit...>\src\main\java  
[INFO]   Using low threshold.  
[INFO]   Using FindBugs Version: 1.3.8  
[INFO]   Using low threshold.  
[INFO]   Using low threshold.  
[INFO]   Using the xdoc format  
[INFO]   Using maximum effort.  
[INFO]   Using low threshold.  
[INFO]   Using low threshold.  
[INFO]   Debugging is Off  
[INFO]   Using bug include filter <...edit...>\target\sonar\findbugs-include.xml  
[INFO]   Using bug exclude filter <...edit...>\target\sonar\findbugs-exclude.xml  
[INFO] Printing Errors  
    .....  
[INFO] ------------------------------------------------------------------------  
[INFO] BUILD SUCCESSFUL  
[INFO] ------------------------------------------------------------------------  

还有target/sonar目录下的sonar-pom.xml:

<plugin>  
    <artifactId>maven-checkstyle-plugin</artifactId>  
    <version>2.2</version>  
    <dependencies>  
        <dependency>  
            <groupId>org.codehaus.sonar.runtime.rules-extensions</groupId>  
            <artifactId>parent</artifactId>  
            <version>20100210071723</version>  
            <type>pom</type>  
        </dependency>  
    </dependencies>  
    <configuration>  
        <suppressionsLocation>...edit.../src/test/config/checkstyle-surpressions.xml</suppressionsLocation>  
        <testFailureIgnore>false</testFailureIgnore>  
        <outputFileFormat>xml</outputFileFormat>  
        <consoleOutput>false</consoleOutput>  
        <enableRSS>false</enableRSS>  
        <skip>false</skip>  
        <failsOnError>false</failsOnError>  
        <configLocation>...edit...\target\sonar\checkstyle.xml</configLocation>  
    </configuration>  
</plugin>  
<plugin>  
    <groupId>org.codehaus.mojo</groupId>  
    <artifactId>findbugs-maven-plugin</artifactId>  
    <version>2.0.1</version>  
    <configuration>  
        <xmlOutput>true</xmlOutput>  
        <threshold>Low</threshold>  
        <effort>Max</effort>  
        <debug>false</debug>  
        <excludeFilterFile>...edit...\target\sonar\findbugs-exclude.xml</excludeFilterFile>  
        <classFilesDirectory>...edit...\target\classes</classFilesDirectory>  
        <skip>false</skip>  
            <includeFilterFile>...edit...\target\sonar\findbugs-include.xml</includeFilterFile>  
    </configuration>  
</plugin>  

请注意,sonar-pom.xml 中的 checkstyle 是指项目配置中的文件,但 findbugs exclude 文件是来自 sonar 的虚拟空文件。

有人知道如何让声纳使用项目 pom.xml 中定义的 finbugs 排除文件吗?

提前谢谢 /罗伊

【问题讨论】:

【参考方案1】:

您使用哪个声纳版本?这个问题应该可以帮助你:http://jira.codehaus.org/browse/SONAR-1119

【讨论】:

嗨,西蒙。我使用 Sonar 1.12 并且还尝试使用 -Dsonar.reuseExistingRulesConfiguration=true 运行插件,但它似乎没有帮助。【参考方案2】:

我认为你可以在 findbugs 的项目设置中的 sonar 的服务器端进行配置

【讨论】:

我可以在声纳服务器上添加单个过滤器(不引用过滤器文件)。但这并不好,因为我必须在多个位置管理误报。

以上是关于声纳不使用项目 pom.xml 中的 excludeFilterFile的主要内容,如果未能解决你的问题,请参考以下文章

声纳 jacoco hybris

pom.xml文件

pom.xml是干嘛的?

Maven pom.xml 全配置不常用配置

IDEA下的MAVEN项目,pom.xml文件不报错,项目也可以正常运行,但是右侧却报错了,如下图

IDEAIDEA中maven项目pom.xml依赖不生效解决