CodeNarc подавление JdbcREsultSetReference, кажется, не работает

У меня есть класс, похожий на этот:

import org.springframework.jdbc.core.RowMapper
import java.sql.ResultSet

class DataMapper implements RowMapper<Data> {

    @Override
    @SupressWarnings('JdbcResultSetReference')
    Data mapRow(ResultSet resultSet, int rowNum) throws SQLException {
        // get some values from resultSet and return desired Data
    }
}

Это один раз сценарий для переноса некоторых данных с использованием groovy, поэтому я хочу отключить правило codenarc. в ruleSet Правила jdbc включены, и я не хочу их отключать, так как они сканируют весь проект.

<ruleset xmlns="http://codenarc.org/ruleset/1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://codenarc.org/ruleset/1.0 
    http://codenarc.org/ruleset-schema.xsd"
    xsi:noNamespaceSchemaLocation="http://codenarc.org/ruleset-schema.xsd">

    <description>Static analysis rule set for Groovy sources</description>

    <!-- not related rules -->
    <ruleset-ref path='rulesets/jdbc.xml>
</ruleset>

Я запускаю статический анализ в тестах Junit и получаю эту ошибку:

[codenarc] File: com/example/migrate/DataMapper.groovy
[codenarc]     Violation: Rule=JdbcResultSetReference P=2 Line=5 Msg=[Found reference to java.sql.ResultSet] Src=[import java.sql.ResultSet]
[codenarc]     Violation: Rule=JdbcResultSetReference P=2 Line=5 Msg=[Found reference to java.sql.ResultSet] Src=[import java.sql.ResultSet]
[codenarc] [CodeNarc (http://www.codenarc.org) v1.0]
[codenarc] CodeNarc completed: (p1=0; p2=2; p3=0) 5929ms

Я пытался переехать @SupressWarnings в классе, но это все еще говорит мне, что я нарушаю правило. Итак, вопрос: как заставить это подавление работать?

1 ответ

Решение

К сожалению, эти правила смотрят на операторы импорта, и @SuppressWarnings не работает с ними.

Один из вариантов - отключить это правило для ваших классов Mapper: например, в вашем codenarc.properties:

    JdbcResultSetReference.doNotApplyToClassNames = *Mapper

или установите то же свойство для правила в вашем файле набора правил.

Другие вопросы по тегам