2017-11-11 212 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