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

Osc*_*yes 11 java intellij-idea gradle jacoco

我一直在通过互联网搜索并询问irc聊天,但他们都没有或没有给出任何答案来试图解决我的问题.

我试图让我的项目JaCoCoIntellijIDE 上使用,测试将在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")
    }
}
Run Code Online (Sandbox Code Playgroud)

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

我一直在寻找为什么会发生这种情况,我发现这可能是由于gradle版本而应该使用classDumpDir,这样可以使用,IntelliJJenkins服务器无法构建项目.

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

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

  • CLI Gradle版本:2.10
  • Java版本:Ubuntu openjdk 1.8.0_151
  • IntelliJ版本:2017.3.4社区版

小智 12

看起来他们将变量从classDumpFile更改为classDumpDir.

test {
    jacoco {
        append = false
        **classDumpDir** = file("$buildDir/jacoco/classpathdumps")
    }
}
Run Code Online (Sandbox Code Playgroud)

这对我有用


Osc*_*yes 5

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

我发现在目录中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
Run Code Online (Sandbox Code Playgroud)

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