当前位置: 首页 > 知识库问答 >
问题:

使用gradle从包含依赖项的Cucumber/Groovy测试创建uberJar

东郭和光
2023-03-14

我在{project_home}/src/test/groovy/中有一些功能测试

我希望能够使用一个gradle任务:

task fatJar(type: Jar) {
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

但是编译失败:

:Tests:EndToEndFunctionalTests:fatJar FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Tests:EndToEndFunctionalTests:fatJar'.
> archive contains more than 65535 entries.

  To build this archive, please enable the zip64 extension.
  See: https://docs.gradle.org/2.7/dsl/org.gradle.api.tasks.bundling.Zip.html#org.gradle.api.tasks.bundling.Zip:zip64

我确实在/build/libs下面有jar文件

共有1个答案

常雅达
2023-03-14
task uberJar(type: Jar,dependsOn:[':compileGroovy']) {
    zip64 true
    from files(sourceSets.main.output.classesDir)
    from configurations.runtime.asFileTree.files.collect {zipTree(it) }
    with jar

}

解决了问题。

 类似资料:
  • 在阅读dagger 2的文档时,我找不到一种简单的方法来在构建测试应用时提供依赖项。我找到的唯一线索是: 匕首2不支持覆盖。覆盖简单测试假货的模块可以创建模块的子类来模拟该行为。应该分解使用覆盖并依赖依赖依赖项注入的模块,以便将被覆盖的模块表示为两个模块之间的选择。 我不明白我将如何在Android上设置这样的配置,任何人都可以解释吗?

  • 这个问题与这个问题有关-但是,由于弃用而支持,它不起作用。它确实拾取了用声明的依赖项。然而,由于它被弃用,使用它不是一个选项(无论如何,当它被删除时,我们会回到这里) 我有一个Gradle任务: 除了测试依赖之外,还有一个依赖项: 从IDE运行很好。然而,当我部署到Raspberry Pi(或在本地使用jar结果)时,我会遇到以下异常: 由以下行触发: 在静态编程语言方法中,返回

  • 我想在gradle中创建zip/war/jar工件,其中包括几个类,并且只需要依赖项 我有简单的zip任务如下: 现在我想包括一些编译依赖项示例构建。渐变骨架: 对于我的zip任务:

  • 我面临的第一个问题是提供的依赖关系,该依赖关系总是作为运行时写入pom.xml。 第二个问题是动态版本,我使用它来进行较小的版本更改。Maven和Gradle有不同的符号,maven-publish只是将Gradle的符号写入pom.xml 下面是我的例子:

  • 我将给你一个关于我的文件的概述: 设置。分级: Build.Gradle: 注意:我以为没有将依赖项添加到类路径中,但我不确定这一点。但是,我希望Intellij将依赖项添加到类路径中(或者在清单文件中声明) 但是,这会创建一个zip/tar,其中包含一个执行脚本和一个bin文件夹,这不是我的本意。 所以我开始在谷歌上搜索了好几个小时,但我找不到解决问题的方法。

  • 嗨,我想在一个gradle项目上用cucumber做几个测试,我试图在另一台PC上运行这个测试(网络访问受限),所以我复制/粘贴了< code >下的所有内容。/gradle/caches和项目文件,如< code>build、src和build.gradle,并将所有内容放在与原始文件相同的位置 所以一旦我把一切都准备好了,我就运行这个 我失败了 奇怪的是我有缓存目录上的文件 仅供参考,我没有像