Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Gradle:无法设置未知属性';类转储文件';在Intellij中_Java_Gradle_Intellij Idea_Jacoco - Fatal编程技术网

Java Gradle:无法设置未知属性';类转储文件';在Intellij中

Java Gradle:无法设置未知属性';类转储文件';在Intellij中,java,gradle,intellij-idea,jacoco,Java,Gradle,Intellij Idea,Jacoco,我一直在互联网上搜索,并在irc聊天中询问,但没有一个是或没有回答试图解决我的问题 我试图让我的项目在IntellijIDE上使用JaCoCo,测试将在Jenkins服务器上进行,我已经在gradle.build文件中为JaCoCo设置了一些设置,但是编译失败,因为无法为org.gradle.testing.JaCoCo.plugins.jacoTaskExtension类型的对象设置未知属性“classDumpFile”。 生成文件如下所示: version '1.0-SNAPSHOT' a

我一直在互联网上搜索,并在irc聊天中询问,但没有一个是或没有回答试图解决我的问题

我试图让我的项目在
Intellij
IDE上使用
JaCoCo
,测试将在
Jenkins
服务器上进行,我已经在gradle.build文件中为
JaCoCo
设置了一些设置,但是编译失败,因为
无法为org.gradle.testing.JaCoCo.plugins.jacoTaskExtension类型的对象设置未知属性“classDumpFile”。

生成文件如下所示:

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
服务器的开发人员告诉我使用这些
JaCoCo
设置使
sonarQube
正常工作,
IntelliJ
无法进行任何编译,但在将代码提交给
Jenkins
时,它工作正常

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

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

如有必要,以下是我正在使用的版本:

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

看起来他们将变量从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版本,它可以工作

你能从命令行通过gradle构建项目吗?尝试使用不同的jacoco插件版本。可能是您在build.gradle中使用的
classDumpFile
属性在该插件版本中不存在。还可以尝试不同的Gradle版本(在设置(首选项)|构建、执行、部署|构建工具| Gradle中)。@Andrey我尝试过更改jacoco的版本,但仍然出现此错误,问题是我必须设置jacoco的版本,以便jenkins服务器能够捕获所有覆盖率报告,然而,我认为这可能是一个gradle版本问题,我一直在尝试多种方法来更改版本,但我甚至不知道IDE使用的是哪个版本IDE使用的是gradle,在文件|设置|构建、执行、,部署|构建工具| Gradle设置。这在我的本地计算机上也适用,但jenkins服务器使用Gradle包装器版本
4.8.1
进行此设置时失败,这有助于克服标题中的错误;但在我的例子中,随后的错误接踵而至,我仍然不得不降级gradle包装器版本,类似于我的例子,将版本从
4.8.1
更改为
2.9
有帮助。既然你在这里指的是gradle包装器,我猜这与问题无关<代码>CLI渐变版本:2.10