Gradle无法运行checkstyle

Jul*_*ian 4 checkstyle gradle

我的笔记本电脑上有一个java项目,我用gradle构建它.所有依赖项都在文件系统中,因为我在处理它时大部分时间都在离线.反正他们并不是太多.

的build.gradle:

repositories {
    flatDir {
        dirs "${rootDir}/lib/main", "${rootDir}/lib/test", "${rootDir}/lib/quality"
    }
}

ext.configDir = "${rootDir}/gradle/config"
ext.scriptsDir = "${rootDir}/gradle/scripts"
Run Code Online (Sandbox Code Playgroud)

现在我需要对我的代码添加一些质量检查.我很幸运能够通过checkstyle检查PMD检查,但不是那么幸运.gradle分发的例子,我读过的动作书中的gradle,gradle文档似乎不是火箭科学,但是我不能让它工作变得非常令人沮丧,特别是那些本来是五分钟任务的蚂蚁.无论如何这是checkstyle的gradle.build条目:

apply from: "${scriptsDir}/checkstyle.gradle"
Run Code Online (Sandbox Code Playgroud)

这是我的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' )
}
Run Code Online (Sandbox Code Playgroud)

但是,在运行我的构建时,checkstyle任务会失败,如下所示:

* What went wrong:
Execution failed for task ':checkstyleMain'.
> java.lang.ClassNotFoundException: com.puppycrawl.tools.checkstyle.CheckStyleTask
Run Code Online (Sandbox Code Playgroud)

查看checkstyle-6.10.1.jar,我可以看到没有这样的类,com.puppycrawl.tools.checkstyle.CheckStyleTask但有一个被调用com.puppycrawl.tools.checkstyle.ant.CheckStyleAntTask,我怀疑这是gradle应该调用的那个.但是我不知道如何让gradle调用它.

我唯一怀疑的是我toolVersion = '6.10.1'没有正确定义,并且gradle使用默认调用.但是,所有gradle api文档都说明了这一点:"String toolVersion要使用的代码质量工具的版本."

所以我做错了什么,我应该如何解决它.

提前感谢您的意见.

Ren*_*hke 5

你在Gradle(GRADLE-3314)中遇到了一个错误.Gradle 2.7中已修复此问题,该问题很快就会出来.您是否介意使用最新的2.7版本来验证问题是否已解决?

您可以从gradle release candidate登录页面获取Gradle 2.7-rc-2 .