【问题标题】:How can you override an existing Gradle plugin from a local repository?如何覆盖本地存储库中的现有 Gradle 插件?
【发布时间】:2014-03-30 04:14:54
【问题描述】:

我正在使用 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 目录:“${projectDir}/lib”
  • maven { url uri("lib") }
  • 我忘记了其他一两种方式

...我的 lib 文件夹包含上面链接中预览构建 zip 的 lib 文件夹中未更改的确切内容。 gradle 似乎没有找到本地 repo 的问题,但是在找到 JAR 时遇到了麻烦。我认为我命名它的方式或它的“打包”方式有问题。我已尝试修改 JAR 名称,但我不断收到错误...

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

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

...任何想法为什么我的 JAR 没有被发现?谢谢!

【问题讨论】:

    标签: java javafx gradle java-8 jacoco


    【解决方案1】:

    “回答”我自己的问题,尽管我还没有完全弄清楚。无论如何,这里有两个链接我发现似乎可以解决我的问题......

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

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

    更新

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

    ...希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      作为参考,最新的 jacoco 库已更改,因此我分享以下 sn-p:

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

      【讨论】:

        猜你喜欢
        • 2020-07-16
        • 2012-09-01
        • 2016-09-14
        • 1970-01-01
        • 2013-01-08
        • 1970-01-01
        • 2012-12-15
        • 2017-11-03
        • 1970-01-01
        相关资源
        最近更新 更多