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

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

...我的 lib 文件夹包含上面链接中预览构建 zip 的 lib 文件夹中的确切内容,没有变化。看起来 gradle 在定位本地 repo 时没有问题,但它在查找 JAR 时遇到了问题。我认为我命名它的方式或它的“打包”方式有问题。我尝试修改 JAR 名称,但我一直收到错误...

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

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

...为什么找不到我的 JAR 有什么想法吗?谢谢!

最佳答案

“回答”我自己的问题,尽管事实上我还没有完全弄明白。不管怎样,我发现这里有两个链接似乎可以解决我的问题......

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

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

更新

好的!我想通了,上面的链接确实帮助我弄清楚了。我的问题是 asm-all JAR,因为有好几个,我不知道该用哪一个。为了让 jacoco 使用 Java 1.8,您不需要指定 toolVersion 属性。您需要做的就是将以下内容添加到您的依赖项 block (不是构建脚本 block ,代码块)...

jacoco代理文件( "$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

...希望这对您有所帮助!

关于java - 如何从本地存储库覆盖现有的 Gradle 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22056566/

相关文章:

java - 如何向 Gradle 添加新的源集?

java - 如何解决 NativeScript Skidekick 中与模拟器 java 相关的错误

java - 什么是循环反转技术?

Java免费现货件

javafx - 代码区右键获取字符索引

android - 无法实例化应用程序 com.android.tools.fd.runtime.BootstrapApplication ?Android

java - 如何将 Espresso 2(用于测试)与扩展应用程序(android.app.Application)一起使用?

java - 使用 Rally Java Rest api 使用字段名称查找引用

java - 无法使用 AuthenticationAdmin API 身份验证创建 WSO2 Identity Server 5.1.0 的 java 客户端

java - <Part>无法解析为类型(是的,我已经导入了List和ArrayList)