如何从本地存储库覆盖现有的Gradle插件?

时间:2014-02-27 00:26:45

标签: java javafx gradle java-8 jacoco

我正在使用Gradle,JDK 8,Java FX和Test FX构建应用程序。我需要使用JDK 8,因为我们的应用程序可以使用我们的技术堆栈在所有平台上工作。我的问题是我无法将代码覆盖到我们的构建中。我找到了这个链接...

https://github.com/jacoco/jacoco/issues/74

...并使用顶部的Jacoco预览版本,我能够替换我的intellij JAR并成功运行我的测试并获得覆盖率。但是,我无法将其放入build.gradle中。据我所知,我需要在构建脚本中添加一个本地存储库...

...
apply plugin: "jacoco"
...
buildscript {
    repositories {
        // Local Repo
        // MVN Repo(s)
    }
    dependencies {
        // Classpaths
    }
}
jacoco {
    toolVersion = "0.6.4.201311160552" // I need this specific version, which isn't on a MVN repo
}

...我试图通过几种方式添加我的本地仓库,包括......

  • flatDir(dirs:“lib”)
  • flatDir dirs:“$ {projectDir} / lib”
  • maven {url uri(“lib”)}
  • 我忘记了一两种其他方式

...我的lib文件夹包含上面链接中预览版本zip的lib文件夹中未更改的确切内容。看起来Gradle似乎没有找到本地仓库的问题,但它找不到JAR。我认为我命名它的方式或它“打包”的方式有问题。我试过修改JAR名称,但我一直收到错误......

  • 出了什么问题: 配置根项目“myProject”时出现问题。

      

    无法解析配置':classpath'的所有依赖项。   找不到:org.jacoco.agent:。    要求:        :myProject的:未指定

  •   
  ...为什么我的JAR没被找到的任何想法?谢谢!

2 个答案:

答案 0 :(得分:2)

“回答”我自己的问题,尽管事实上我还没有完全理解它。无论如何,这里有两个链接,我发现似乎解决了我的问题......

http://forums.gradle.org/gradle/topics/jacocotestreport_is_skipping

...遵循其中一些说明允许我的测试运行,但是我仍然无法在没有失败的情况下运行“gradle jacocoTestReport”。

更新

OKAY!我想通了,上面的链接确实帮我解决了。我的问题是asm-all JAR,因为有几个,我不知道使用哪一个。为了使jacoco能够使用Java 1.8,您不需要指定toolVersion属性。您需要做的就是将以下内容添加到依赖项块(而不是buildscript块,代码块)......

jacocoAgent文件(      “$ PROJECTDIR / LIB / org.jacoco.agent-0.6.4.201311160552.jar”)

jacocoAnt文件(     “$ PROJECTDIR / lib目录/ org.jacoco.ant-0.6.4.201311160552.jar”     “$ PROJECTDIR / lib目录/ org.jacoco.core-0.6.4.201311160552.jar”     “$ PROJECTDIR / lib目录/ org.jacoco.report-0.6.4.201311160552.jar”     “$ PROJECTDIR / LIB / ASM-全5.0_BETA.jar”)

... asm-all-5.0_BETA.jar取自在...发现的org.ow2.asm组。

http://mvnrepository.com/artifact/org.ow2.asm/asm-all/5.0_BETA

...希望这有帮助!

答案 1 :(得分:0)

作为参考,最新的jacoco库已更改,因此我共享以下代码段:

dependencies{
    jacocoAgent files("$rootProject.projectDir/lib/org.jacoco.agent-0.8.3.201904130250.jar")
    jacocoAnt files("$rootProject.projectDir/lib/org.jacoco.ant-0.8.3.201904130250.jar",
            "$rootProject.projectDir/lib/org.jacoco.core-0.8.3.201904130250.jar",
            "$rootProject.projectDir/lib/org.jacoco.report-0.8.3.201904130250.jar",
            "$rootProject.projectDir/lib/asm-7.0.jar",
            "$rootProject.projectDir/lib/asm-tree-7.0.jar",
            "$rootProject.projectDir/lib/asm-commons-7.0.jar"
            )
}