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

问题描述 投票:3回答:2

我正在使用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”
  • 玛丽{url}
  • 我忘记了一两种其他方式

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

  • 出了什么问题:配置根项目'myProject'时出现问题。 无法解析配置':classpath'的所有依赖项。找不到:org.jacoco.agent:。需要:: myProject:未指定
...any ideas why my JAR is not being found? Thanks!
java javafx gradle java-8 jacoco
2个回答
2
投票

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

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

...遵循其中一些说明允许我的测试运行,但我仍然无法运行“gradle jacocoTestReport”而不会失败。

UPDATE

好的!我想通了,上面的链接确实帮我解决了。我的问题是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-all-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

...希望这可以帮助!


0
投票

作为参考,最新的jacoco libs已更改,所以我正在共享以下代码段:

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"
            )
}

© www.soinside.com 2019 - 2024. All rights reserved.