有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

。。。使用顶部的Jacoco预览构建,我能够替换intellij JAR并成功运行测试并获得覆盖率。然而,我很难将其应用到我的构建中。格拉德尔。据我所知,我需要在构建脚本中添加一个本地存储库

...
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”)}
  • 还有一两种方式我忘记了

。。。我的lib文件夹包含上面链接中预览构建zip的lib文件夹中的确切内容(未更改)。gradle似乎在查找本地回购协议时没有问题,但在查找JAR时遇到了困难。我假设我命名它的方式或它的“打包”方式有问题。我已经尝试过修改JAR名称,但我一直得到错误

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

    Could not resolve all dependencies for configuration ':classpath'. Could not find :org.jacoco.agent:. Required by: :myProject:unspecified

...你知道为什么我的罐子找不到吗?谢谢

共 (2) 个答案

  1. # 1 楼答案

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

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

    。。。按照其中的一些说明可以运行我的测试,但我仍然无法运行“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_测试版。jar来自组织。ow2。在以下位置找到asm组

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

    。。。希望这有帮助

  2. # 2 楼答案

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