Java Gradle:无法设置未知属性';类转储文件';在Intellij中
我一直在互联网上搜索,并在irc聊天中询问,但没有一个是或没有回答试图解决我的问题 我试图让我的项目在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
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社区版
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