Gradle: 无法在 Intellij 中设置未知 属性 'classDumpFile'

Gradle: could not set unknown property 'classDumpFile' in Intellij

我一直在通过 Internet 搜索并在 irc 聊天中询问,但其中 none 已经或没有给出任何试图解决我的问题的答案。

我正在尝试让我的项目在 Intellij IDE 上使用 JaCoCo,测试将在 Jenkins 服务器上完成,我已设置我的 gradle.build 文件中的一些设置 JaCoCo 但构建编译失败说 Could not set unknown property 'classDumpFile' for object of type org.gradle.testing.jacoco.plugins.JacocoTaskExtension.

构建文件是这样的:

version '1.0-SNAPSHOT'

apply plugin: 'java'
apply plugin: 'jacoco'

sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

jacoco{
    toolVersion = '0.7.6.201602180812'
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.5'
    compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.6'
    compile group: 'org.json', name: 'json', version: '20180130'
}
test{
    jacoco {
        append = false
        destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
        classDumpFile = file("$buildDir/jacoco/classpathdumps")
    }
}

这是 IntelliJ 创建项目时生成的 gradle 文件,我一直在手动添加一些依赖项,现在管理 jenkins 服务器的开发人员告诉我使用 sonarQube 的这些 JaCoCo 设置可以很好地工作,IntelliJ 无法进行任何编译,但是在将代码提交给 Jenkins 时它可以正常工作。

我一直在寻找为什么会发生这种情况,我发现这可能是由于 gradle 版本,应该使用 classDumpDir 代替,这使得 IntelliJ 可以工作但是 Jenkins 服务器无法构建项目。

我相信这可能是由于 gradle 版本或其他原因,但我仍在学习如何使用 JavaIntelliJ,其他开发人员正在使用 Eclipse 他们没有得到这个错误,但我不想切换到 Eclipse 因为我已经对 IntelliJ

感到太舒服了

如果有必要,这里是我使用的版本:

看起来他们更改了变量,从 classDumpFile 到 classDumpDir。

test {
    jacoco {
        append = false
        classDumpDir = file("$buildDir/jacoco/classpathdumps")
    }
}

这对我有用

经过长时间的搜索、测试和失败,我终于找到了解决这个问题的方法。

我发现在目录 gradle/wrapper 中有一个具有 gradle 属性的文件,在这个文件中有一个变量定义了要使用的 gradle 以及我的文件它被设置为使用 gradle 4.5:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip

我问过 DevOps 工程师 jenkins 使用的是哪个 gradle 版本,他说应该是 3.0,所以我将 distributionUrl 值更改为使用 3.0 版本并且有效