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

Java 如何覆盖本地存储库中现有的Gradle插件?,java,javafx,gradle,java-8,jacoco,Java,Javafx,Gradle,Java 8,Jacoco,我正在使用Gradle、jdk8、javafx和testfx构建一个应用程序。我需要在JDK 8上使用我们的应用程序才能在所有平台上使用我们的技术堆栈。我的问题是我无法将代码覆盖率引入到我们的构建中。我找到了这个链接 …使用顶部的Jacoco预览版本,我能够替换intellij JAR并成功运行测试并获得覆盖率。然而,我很难将其应用到我的build.gradle中。据我所知,我需要在构建脚本中添加一个本地存储库 ... apply plugin: "jacoco" ... buildscrip

我正在使用Gradle、jdk8、javafx和testfx构建一个应用程序。我需要在JDK 8上使用我们的应用程序才能在所有平台上使用我们的技术堆栈。我的问题是我无法将代码覆盖率引入到我们的构建中。我找到了这个链接

…使用顶部的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(目录:“lib”)
  • flatDir目录:“${projectDir}/lib”
  • maven{url uri(“lib”)}
  • 还有一两种方式我忘记了
…my lib文件夹包含上述链接中预览生成zip的lib文件夹中的确切内容(未更改)。gradle似乎在查找本地回购协议时没有问题,但在查找JAR时遇到了困难。我假设我命名它的方式或它的“打包”方式有问题。我已经尝试过修改JAR名称,但我一直得到错误

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

    无法解析配置“:classpath”的所有依赖项。 找不到:org.jacoco.agent:。 要求: :myProject:未指定
…知道为什么我的罐子找不到了吗?谢谢

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

…遵循其中一些说明可以运行我的测试,但我仍然无法运行“gradle jacocoTestReport”而不失败

更新

好的!我明白了,上面的链接确实帮我明白了。我的问题是asm all JAR,因为有几个,我不知道该使用哪一个。为了让jacoco使用Java1.8,您不需要指定toolVersion属性。您只需将以下内容添加到依赖项块(不是buildscript块,而是代码块)

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

JacoCant文件( “$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组,位于


…希望这有帮助

作为参考,最新的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"
            )
}