2017-11-11 17 views
1

私はプロセスを構築し、私のGradleにオープンクローバーを統合しようとしていますし、次のガイド次ました:私は私のbuild.gradleに追加した場合Gradleのマルチプロジェクト - OpenClover

を - 私は、次のエラーを得た:

* * 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ファイルは次のとおりです。

01を次のようにutil.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) 
    } 
} 

内容があります

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

私はノーベルの質問にお礼を申し上げます。私は今までmavenで働いていました。それができるように、私は楽器ルートプロジェクトにセットアップクローバーにすべてのサブプロジェクトをしたいと思います。私は以前 – Damien

関連する問題