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 版本或其他原因,但我仍在学习如何使用 Java
和 IntelliJ
,其他开发人员正在使用 Eclipse
他们没有得到这个错误,但我不想切换到 Eclipse
因为我已经对 IntelliJ
感到太舒服了
如果有必要,这里是我使用的版本:
- CLI Gradle 版本:2.10
- Java版本:Ubuntuopenjdk 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 版本并且有效
我一直在通过 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 版本或其他原因,但我仍在学习如何使用 Java
和 IntelliJ
,其他开发人员正在使用 Eclipse
他们没有得到这个错误,但我不想切换到 Eclipse
因为我已经对 IntelliJ
如果有必要,这里是我使用的版本:
- CLI Gradle 版本:2.10
- Java版本:Ubuntuopenjdk 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 版本并且有效