Это часто задаваемые вопросы
Существует более одного способа сделать это.
Вы можете использовать составной SQL в своем сценарии с обработчиком продолжения для SQLSTATE, соответствующего ошибке, которую вы получаете, если таблица не найдена, но для этого также необходимо использовать альтернативный разделитель операторов, как показано ниже
--#SET TERMINATOR @
set current schema myschema@
BEGIN
DECLARE CONTINUE HANDLER FOR SQLSTATE '42704'
BEGIN end;
EXECUTE IMMEDIATE 'DROP TABLE MYLOG';
END @
CREATE TABLE MYLOG(... )@
Вы также можете изменить логику abort-on-first-error (если вы используете + s при запуске скрипта через командную строку). Вы можете изменить параметры Db2 CLP на лету в вашем скрипте с помощью update command options using s off
(чтобы продолжить при ошибке) или update command options using s on
, чтобы отменить при ошибке.
FindBugs на самом деле сканирует файлы скомпилированных классов, а не sourcePath
. Если вы компилируете файлы src / * и test / * в разные каталоги, вы можете просто использовать вложенный элемент
.
<findbugs home="${findbugs.dir}" output="xml:withMessages"
outputFile="${findbugs.report.xml}" jvmargs="-Xmx256M"
effort="max" projectName="${ant.project.name}"
auxClasspathRef="findbugs.classpath"
sourcePath="${src.dir}">
<class location="${src.classes.dir}"/>
</findbugs>
Это не сработает, если src / * и test / * оба скомпилированы в один каталог. В этом случае используйте файл фильтра и исключите пакеты или имена классов, которые соответствуют тестам.
<findbugs home="${findbugs.dir}" output="xml:withMessages"
outputFile="${findbugs.report.xml}" jvmargs="-Xmx256M"
effort="max" projectName="${ant.project.name}"
auxClasspathRef="findbugs.classpath"
sourcePath="${src.dir}"
excludefilter="exclude.xml">
<class location="${classes.dir}"/>
</findbugs>
где exclude.xml
выглядит так:
<FindBugsFilter>
<Match>
<Class name="~.*Test$"/>
</Match>
<Match>
<Package name="~test\..*"/>
</Match>
</FindBugsFilter>
Между прочим, хорошая идея также покрывать модульные тесты с помощью FindBugs. Нет причин использовать более низкие стандарты качества при тестировании. Ошибки в тесте - это всего лишь ошибки.
Конечно, если вы запустите FindBugs в первый раз, может появиться много отчетов об ошибках, но количество ошибок со временем снизится, если вы обратите на них внимание.