2015-10-19 2 views
1

Я хотел бы ввести правило Checkstyle в проект Gradle, в котором никакие файлы в репозитории не могут содержать символы табуляции, включая файлы вне исходных наборов (например, README.md).Запуск Checkstyle с использованием Gradle во всех файлах проекта

Я попытался с помощью следующей конфигурации:

apply plugin: 'java' 
apply plugin: 'checkstyle' 

checkstyle { 
    checkstyleMain.source = '.' 
} 

, но затем я получаю исключение:

Failed to capture snapshot of input files for task 'checkstyleMain' during up-to-date check. See stacktrace for details. 
Failed to create MD5 hash for file .gradle\2.7\taskArtifacts\cache.properties.lock. 

Это означает, что мне нужно, чтобы исключить .gradle каталог и наиболее вероятно, другие как .git или .idea , но как я могу это сделать?

+0

Вы уверены, что checkstyle может работать с файлами, отличными от java? – Ethan

+0

Да - у вас даже есть свойство 'fileExtensions' в Checker: http://checkstyle.sourceforge.net/config.html#Checker –

+0

Я бы создал файлTree, а затем исключил каталоги, которые вы не хотите включать. – Ethan

ответ

0

Это решение, которое работает для меня. Он анализирует все файлы в проекте, за исключением каталогов, таких как .git, .idea, gradle, build и другие файлы с автогенерируемыми объектами IntelliJ IDEA или Gradle.

apply plugin: 'java' 
apply plugin: 'checkstyle' 

checkstyle { 
    toolVersion = '6.12.1' 
} 

checkstyleMain { 
    source = fileTree('.') { 
     excludes = ['.*/**', 'gradle*', 'build/**', '*.iml', '*.log', '**/*.jar'] 
    } 
} 
Смежные вопросы