我一直在网上搜索并询问irc聊天,但他们都没有给出任何答案来解决我的问题。
我正在尝试让我的项目在JaCoCo
IDE上使用Intellij
,测试将在Jenkins
服务器上完成,我已经在我的gradle中设置了一些设置。构建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
服务器的开发人员告诉我使用这些JaCoCo
} sonarQube
的设置运行良好,IntelliJ
无法进行任何编译,但在将代码提交到Jenkins
时,它可以正常工作。
我一直在搜索为什么会发生这种情况,我发现这可能是由于gradle版本而应该使用classDumpDir
代替,这会使IntelliJ
正常工作但Jenkins
服务器无法运行建立项目。
我认为这可能是由于gradle版本或其他原因,但我仍然在学习如何使用Java
和IntelliJ
,其他开发人员正在使用Eclipse
但他们没有得到这个错误,但我不想切换到Eclipse
,因为我已经对IntelliJ
如果有必要,我正在使用的版本:
答案 0 :(得分:9)
看起来他们将变量从classDumpFile更改为classDumpDir。
test {
jacoco {
append = false
**classDumpDir** = file("$buildDir/jacoco/classpathdumps")
}
}
这对我有用
答案 1 :(得分:2)
经过长时间的搜索,测试和失败,我终于找到了解决这个问题的方法。
我在目录gradle/wrapper
中发现有一个带有gradle属性的文件,在这个文件中有一个变量定义了要使用的gradle,在我的文件中它被设置为使用gradle 4.5:< / p>
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版本并且它可以正常工作