2017-11-11 214 views
1

我试图打开四叶草融入我的摇篮建设进程,并遵循以下指导:摇篮多项目 - OpenClover

当我把它添加到我的build.gradle - 我得到了以下错误:

* * What went wrong: 
A problem occurred evaluating root project 'Enjin-Coin-Java-SDK'. 
> Could not find method cloverCompile() for arguments [org.openclover:clover:4.2.0] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.. 

我的build.gradle文件如下:是

buildscript { 
    repositories { 
     mavenCentral() 
     maven { url 'https://plugins.gradle.org/m2/' } 
    } 
     dependencies { 
     classpath 'org.openclover:clover:4.2.0' 
    } 
} 

plugins { 
    id 'com.github.johnrengelman.shadow' version '1.2.4' 
    id 'java' 
} 

sourceSets { 
    clover { 
     java { 
      srcDir "$buildDir/sources-instr" 
     } 
    } 
} 

apply from: 'gradle/util.gradle' 

subprojects { 
    apply plugin: 'eclipse' 
    apply plugin: 'idea' 
    apply plugin: 'java' 
    apply plugin: 'maven' 
    apply plugin: 'com.github.johnrengelman.shadow' 

    group = 'com.myproject' 
    version = '0.0.1-SNAPSHOT' 

    idea { 
     module { 
      scopes.PROVIDED.plus += [configurations.shadow] 
     } 
    } 

    tasks.build.dependsOn(shadowJar) 
    artifacts.archives shadowJar 

    tasks.withType(AbstractCompile) { 
     classpath += configurations.shadow 
    } 

    ext { 
     mockito = '2.9.0' 
     junit = '4.12' 
     powermock = '1.7.3' 
    } 

    repositories { 
     mavenLocal() 
     mavenCentral() 
    } 

    dependencies { 
     // testCompile dependencies 
     testCompile group: 'org.mockito', name: 'mockito-core', version: mockito 
     testCompile group: 'junit', name: 'junit', version: junit 
     testCompile group: 'org.powermock', name: 'powermock-api-mockito2', version: powermock 
     testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: powermock 
     cloverCompile 'org.openclover:clover:4.2.0' 
    } 



    jar { 
     archiveName = "${project.name}-slim.jar" 
    } 

    shadowJar { 
     archiveName = "${project.name}.jar" 
    } 

    install { 
     repositories.mavenInstaller { 
      pom.artifactId = "sdk-${project.name}" 
     } 
    } 
} 

configurations { 
    cloverRuntime 
    cloverRuntime.extendsFrom cloverCompile 
} 

task cloverInstr() { 
    inputs.files sourceSets.main.allJava 
    outputs.dir "$buildDir/sources-instr" 

    doFirst { 
    def argsList = ["--initstring", "${buildDir}/clover/clover.db", "-d", "${buildDir}/sources-instr"] 
    argsList.addAll(inputs.files.files.collect({ file -> 
     file.absolutePath 
    })) 
    String[] args = argsList.toArray() 

    com.atlassian.clover.CloverInstr.mainImpl(args) 
    } 
} 

cloverClasses.dependsOn cloverInstr 

test { 
    def cloverClasspath = configurations.testRuntime + configurations.cloverRuntime + sourceSets.test.output + sourceSets.clover.output 
    classpath = cloverClasspath 
} 

task cloverReport { 
    inputs.dir "${buildDir}/clover" 
    outputs.dir "${reportsDir}/clover" 
    onlyIf { 
     file("${buildDir}/clover/clover.db").exists() 
    } 
    doFirst { 
     def argsList = ["--initstring", "${buildDir}/clover/clover.db", 
         "-o", "${reportsDir}/clover"] 
     String[] args = argsList.toArray() 
     com.atlassian.clover.reporters.html.HtmlReporter.runReport(args) 
    } 
} 

util.gradle的内容如下

ext.scriptFile = { 
    String fileName -> 
     return new File(new File(rootDir, 'gradle'), fileName) 
} 

任何人都可以提供任何帮助如何解决这个问题?

回答

2

使用下面的脚本来三叶草集成到项目:

buildscript { 
    repositories { 
     mavenCentral() 
     maven { url 'https://plugins.gradle.org/m2/' } 
     jcenter() 
    } 
} 

plugins { 
    id 'com.github.johnrengelman.shadow' version '1.2.4' 
    id "com.bmuschko.clover" version "2.1.3" 
} 

apply from: 'gradle/util.gradle' 

subprojects { 
    apply plugin: 'eclipse' 
    apply plugin: 'idea' 
    apply plugin: 'java' 
    apply plugin: 'maven' 
    apply plugin: 'com.github.johnrengelman.shadow' 
    apply plugin: 'com.bmuschko.clover' 

    group = 'com.myproject' 
    version = '0.0.1-SNAPSHOT' 

    idea { 
     module { 
      scopes.PROVIDED.plus += [configurations.shadow] 
     } 
    } 

    tasks.build.dependsOn(shadowJar) 
    artifacts.archives shadowJar 

    tasks.withType(AbstractCompile) { 
     classpath += configurations.shadow 
    } 

    ext { 
     mockito = '2.9.0' 
     junit = '4.12' 
     powermock = '1.7.3' 
    } 

    repositories { 
     mavenLocal() 
     mavenCentral() 
    } 

    dependencies { 
     // testCompile dependencies 
     testCompile group: 'org.mockito', name: 'mockito-core', version: mockito 
     testCompile group: 'junit', name: 'junit', version: junit 
     testCompile group: 'org.powermock', name: 'powermock-api-mockito2', version: powermock 
     testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: powermock 
     clover 'org.openclover:clover:4.2.0' 
    } 

    jar { 
     archiveName = "${project.name}-slim.jar" 
    } 

    shadowJar { 
     archiveName = "${project.name}.jar" 
    } 

    install { 
     repositories.mavenInstaller { 
      pom.artifactId = "sdk-${project.name}" 
     } 
    } 
} 

有没有需要手动积分如果准备使用的插件可以使用。

+0

解决了这个问题,但引入了另一个问题。 - 我更新了这篇文章,将你的建议包含在build.gradle文件中,还包含build.gradle和新错误 – Damien

+0

@Damien的内容,我猜你根本不知道在做什么,我是对的吗?您需要集成三叶草,根项目还是子项目?另外,为什么你决定手动集成三叶草而不是使用插件? – Opal

+0

我对gradle很陌生,所以对noob问题表示歉意。到目前为止,我一直在maven工作。我想在根项目上设置三叶草,以便它可以检测所有子项目。我在之前的maven中做过这件事, – Damien