Свойство не существует ошибка в файле конфигурации checkstyle
я создаю проект Android с помощью Android Studio. В build.gradle
приложения добавить:
apply from: '../config/quality.gradle'
тогда я создаю config
dir с двумя файлами:quality.gradle
как:
apply plugin: 'checkstyle'
task checkstyle(type: Checkstyle) {
configFile file("${project.rootDir}/config/checkstyle.xml")
source 'src'
include '**/*.java'
exclude '**/gen/**'
classpath = files()
}
и checkstyle.xml
как:
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="TreeWalker">
<module name="NeedBraces">
<property name="tokens" value="LITERAL_CASE, LITERAL_DEFAULT"/>
<property name="allowSingleLineStatement" value="true"/>
</module>
</module>
</module>
под управлением gradle checkstyle
дает мне следующую ошибку:
Executing external task 'checkstyle'...
:app:checkstyle FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:checkstyle'.
> Unable to create a Checker: cannot initialize module TreeWalker - Property 'allowSingleLineStatement' in module NeedBraces does not exist, please check the documentation
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
если я удалить строку:
<property name="allowSingleLineStatement" value="true"/>
это работает. Но чтение документация, первая версия тоже должна работать.
это случается подобное с:
<module name="EmptyCatchBlock">
<property name="exceptionVariableName" value="expected|ignore"/>
</module>
что бросает мне:
* What went wrong:
Execution failed for task ':app:checkstyle'.
> Unable to create a Checker: cannot initialize module TreeWalker - Unable to instantiate EmptyCatchBlock
что я делаю неправильно или каким образом я недопонимаю документы?
1 ответов
на момент написания этой статьи, Gradle в использует Checkstyle 5.9 по умолчанию. The allowSingleLineStatement
собственность только добавлено в Checkstyle 6.5. Таким образом, вы должны иметь возможность получить эту работу, используя более новую версию Checkstyle, как это:
checkstyle {
configFile = file("${project.rootDir}/config/checkstyle.xml")
toolVersion = '6.7'
}
к сожалению, документация по Checkstyle не версионная, поэтому на веб-сайте всегда есть только последние документы, что затрудняет понимание таких вещей.