У меня есть проект java на моем ноутбуке, и я строю его с помощью градиента. Все зависимости находятся в файловой системе, так как я большую часть времени работаю над ней. В любом случае их не так уж много.Gradle Невозможно запустить checkstyle
build.gradle:
repositories {
flatDir {
dirs "${rootDir}/lib/main", "${rootDir}/lib/test", "${rootDir}/lib/quality"
}
}
ext.configDir = "${rootDir}/gradle/config"
ext.scriptsDir = "${rootDir}/gradle/scripts"
Теперь мне нужно добавить некоторые проверки качества против моего кода. Мне посчастливилось заставить PMD проверять работу, но не так повезло с checkstyle. Пример из распределения градиентов, градиент в книге действий, которую я читал, документация по градуированию, похоже, не является наукой о ракетах, но я просто не могу заставить ее работать, что очень расстраивает, тем более, что с муравьем это было бы задачей за пять минут. В любом случае это мой gradle.build вход для Checkstyle:
apply from: "${scriptsDir}/checkstyle.gradle"
и это мой checkstyle.gradle (частично показан):
apply plugin: 'checkstyle'
ext.checkstyleConfigDir = new File(configDir, "checkstyle")
ext.checkstyleReportsDir = new File(reportsDir, "checkstyle")
ext.xslStyleFile = new File(checkstyleConfigDir, "checkstyle-noframes.xsl")
checkstyle {
toolVersion = '6.10.1'
configFile = new File(checkstyleConfigDir, 'sun_checks.xml')
ignoreFailures = true
showViolations = true
}
checkstyleMain.doLast {
def main = new File(checkstyleReportsDir, "main.xml")
if (main.exists()) {
ant.xslt(in: main, style: xslStyleFile, out: new File(checkstyleReportsDir, "main.html"))
}
}
dependencies {
checkstyle('com.puppycrawl.tools:checkstyle:6.10.1')
}
Однако при выполнении моей сборки задача Checkstyle терпит неудачу как показано ниже:
* What went wrong:
Execution failed for task ':checkstyleMain'.
> java.lang.ClassNotFoundException: com.puppycrawl.tools.checkstyle.CheckStyleTask
Внутри checkstyle-6.10.1.jar Я могу видеть ther e не является таким классом, как com.puppycrawl.tools.checkstyle.CheckStyleTask
, но есть один, который называется com.puppycrawl.tools.checkstyle.ant.CheckStyleAntTask
, и я подозреваю, что это тот, который должен вызывать градация. Однако я понятия не имею, как заставить gradle ссылаться на это.
Единственное, что у меня есть, это то, что мой toolVersion = '6.10.1'
не определен правильно, а gradle вызывает с использованием какого-либо значения по умолчанию. Однако вся документация по gradle api говорит об этом: «String toolVersion Версия используемого инструмента качества кода».
Так что я делаю неправильно, и как мне его исправить.
Заранее благодарим за входные данные.
Большое спасибо Рене. Это исправило мою проблему. На домашнем компьютере с использованием стабильного RC должно быть вполне удовлетворительным. Я вижу, что у вас хорошая репутация с градлой. Не возражаете, если я попрошу вас взглянуть и в конце концов прокомментировать [этот тоже] (http://stackoverflow.com/questions/32344216/gradle-leaves-java-process-after-finishing-ant-invocation). По внешнему виду мне кажется, что еще нужно исправить; более серьезным я бы сказал. Еще раз спасибо. – Julian
Я могу подтвердить это исправил проблему: я был на gradle 2.6 и обновлялся до 2.7 исправил его. – Bohemian
Я использую gradle 3.1 с checkstyle 7.1.2 и получил ту же проблему. Есть предположения? –