Как указать относительный путь к конфигурации checkstyle в корневом проекте в gradle 2.2+
у меня есть следующая структура проекта:
project
checkstyle
checkstyle.xml
subproject1
...
subproject2
...
build.gradle
моя конфигурация для checkstyle в build.gradle
следующим образом:
allprojects {
apply plugin: 'checkstyle'
checkstyle {
configFile = 'checkstyle/checkstyle.xml' as File
}
}
когда я использовал gradle 2.1, сборка работала нормально. После обновления до 2.2 или 2.2.1 возникает ошибка:
:subproject1:checkstyleMain FAILED
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':subproject1:checkstyleMain'.
> Unable to create a Checker: unable to find /home/my/project/subproject1/checkstyle/checkstyle.xml
Gradle теперь ищет ' checkstyle / checkstyle.xml ' в каталоге подпроекта, что не то, что я ожидал бы.
я нашел это они упомянули об этом изменении в выпуске 2.2 Примечания. Но они не говорили, как сохранить прежнее поведение при решении этого пути. Как это сделать?
Я попытался с помощью project.file
но это тоже не сработает.
3 ответов
в свой фрагмент
allprojects {
apply plugin: 'checkstyle'
checkstyle {
configFile = 'checkstyle/checkstyle.xml' as File
}
}
вы настраиваете файл конфигурации для каждого проекта как относительный от подпроекта, который вы в настоящее время настраиваете. вы можете исправить это, заменив
checkstyle {
configFile = 'checkstyle/checkstyle.xml' as File
}
by
checkstyle {
configFile = rootProject.file('checkstyle/checkstyle.xml')
}
не могли бы вы попробовать заменить:
configFile = 'checkstyle/checkstyle.xml' as File
С:
configFile = ('checkstyle/checkstyle.xml' as File).absolutePath as File
и попробуйте, если это сработает?
как уже упоминалось здесь configFile
заменяется config. Не могу попробовать, но может быть:
config = 'checkstyle/checkstyle.xml' as File
будет работать?
есть гораздо более простой способ сделать это. Попробуйте gradle-estilo-plugin
. Он позаботится о создании всех конфигурационных файлов (checkstyle.xml, импорт-контроль.xml, подавление.xml и заголовок.формат txt.) Все, что вам нужно сделать, это использовать плагин в файле сборки gradle. Если вам нужны какие-либо пользовательские правила, вы можете добавить их непосредственно в задачу gradle.
вот что вам нужно, чтобы начать работу:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'net.anshulverma.gradle:gradle-estilo-plugin:0.4.8'
}
}
apply plugin: 'net.anshulverma.gradle.estilo'
estilo {
source 'sun'
}
после этого вы можете изменить проверки, добавить подавления, редактировать импортируйте элемент управления и добавьте файл заголовка непосредственно из estilo { }
блок. Подробности о том, как это сделать, и подробности, включая советы, можно найти в README.