2014-02-19 2 views
1

Мы используем Checkstyle для обеспечения соблюдения основных правил качества кода в нашей многопроектной сборке Gradle. Некоторые из этих правил применяются ко всем типам файлов, а не только к файлам Java, но мы не можем понять, как настроить Checkstyle Plugin для просмотра чего-либо, кроме $projectDir/src/$sourceSet/java.Как тестировать больше, чем просто java-файлы с помощью плагина Checkstyle Gradle

Одним из основных правил, которые мы хотели бы применить, является то, что символы табов никогда не используются. Соответствующие биты checkstyle.xml:

<module name="Checker"> 
    <module name="FileTabCharacter"> 
    <property name="eachLine" value="true"/> 
    </module> 
</module> 

и фрагмент build.gradle, который настраивает плагин:

apply plugin: 'checkstyle' 
checkstyle { 
    configFile = new File(rootDir, 'checkstyle.xml') 
} 

В дополнение к java/**/* мы также хотели бы проверить все файлы в conf/**/* и www/**/* (предполагается, что включают в себя спецификации относятся к корню исходного набора). Однако, если я пытаюсь их добавления включают в себя правила:

apply plugin: 'checkstyle' 
checkstyle { 
    configFile = new File(rootDir, 'checkstyle.xml') 
    include 'conf/**/*' 
    include 'www/**/*' 
} 

мы получим следующее сообщение об ошибке:

> Could not find method include() for arguments [conf/**/*] on [email protected]763f. 

ответ

4

Вы можете добиться этого путем настройки соответствующего Checkstyle задачи непосредственно. Например:

tasks.checkstyle { // `checkstyle` alone refers to the extension, not the task 
    source "src/main/conf" 
    source "src/main/www" 
} 

Для получения дополнительной информации см Checkstyle в Gradle Build Language Reference.

+0

Thanx. По какой-то причине я неправильно читал документы для источника и думал, что он использовался для объявления дополнительных исходных наборов. – jared

+0

Расширение 'checkstyle' * имеет свойство' sourceSets'. –