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

Gradle: Uber Jar创建失败,“无法扩展ZIP”

马德厚
2023-03-14

我正试图用Gradle创建一个Fat/Uber罐子。不幸的是,我一直遇到以下错误:

> Task :fatJar FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':fatJar'.
> Could not expand ZIP '/home/me/.gradle/caches/modules-2/files-2.1/org.apache.drill/drill-client/1.13.0/c90c87887c292a3712eccc7cebdc48b0b9d93ec9/drill-client-1.13.0.pom'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/4.9/userguide/command_line_interface.html#sec:command_line_warnings

我试图删除我的缓存目录,认为也许有些东西被破坏了,但仍然没有快乐。

建筑gradle文件:

apply plugin: 'java'
apply plugin: 'maven'

group = 'com.me.ps'
version = me.version

sourceCompatibility = 1.8
targetCompatibility = 1.8

buildscript {
    repositories {
        jcenter()
    }
}

repositories {
     [...]
}

dependencies {
    // Explicityly added to in hopes of being included in the fat jar
    compile group: 'org.apache.hadoop', name: 'hadoop-common', version: '2.7.0-me-1803'

    // dependencies listed in the pom.xml
    compile group: 'com.me.ojai', name: 'me-ojai-driver', version: '6.0.1-me'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.6.5'
    compile group: 'org.apache.kafka', name: 'connect-json', version: '1.0.1-me-1803-streams-6.0.1'
    compile group: 'org.apache.spark', name: 'spark-core_2.11', version: '2.2.1'
    compile group: 'org.apache.spark', name: 'spark-streaming_2.11', version: '2.2.1-me-1803'
    compile group: 'org.apache.spark', name: 'spark-streaming-kafka-0-10_2.11', version: '2.2.1-me-1803'
    compile group: 'org.apache.kafka', name: 'kafka-clients', version: '1.0.1-me-1803-streams-6.0.1'

    // dependencies not in the pom.xml, but added to make the gradle build work
    compile group: 'xerces', name: 'xercesImpl', version: '2.11.0'
    compile group: 'org.json', name: 'json', version: '20171018'
    compile group: 'com.google.guava', name: 'guava', version: '19.0'

}

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

我尝试过使用shadowJar插件,但这导致依赖项没有包含在胖jar中。关于这个问题,我有一个单独的问题。目前,我正在使用Maven,它完美地构建了一个胖罐子。

共有2个答案

董鸣
2023-03-14

最新版本的影罐插件修复了这个问题。

滕弘新
2023-03-14

也许你可以忽略。构建JAR时的pom文件,如下所示:

(configurations.compile.findAll { !it.path.endsWith(".pom") }).collect {
    it.isDirectory() ? it : zipTree(it)
}
 类似资料:
  • 我试图写一个函数在PostgreSQL在Windows与Python脚本的主体,我运行到一个错误的消息时,试图创建plpythonu扩展。我运行的命令是: 这将生成以下错误消息: 我还试着跑步: 这会导致以下错误: 大蟒蛇。dll文件存在于该位置,但显然缺少一些关键依赖项。我到处都找遍了,没发现有什么有用的。我已经在机器上安装了Python2和Python3。。。

  • 好的,我看过很多关于这个的帖子,我花了一整天的时间来解决这个问题,但是没有成功。 我试图创建一个Laravel项目。我使用的是Mac(优胜美地),它运行PHP 5.5.14。机器上还有一个较旧版本的PHP。当我尝试使用“laravel new project ectname”从命令行创建项目时,没有报告错误,但是命令只创建了一个名为项目名称的空文件夹。我得到了“制作应用程序......”和“应用程

  • 每个项目都是一个扩展包 一旦你的目录有一个 composer.json 文件,这个目录就是一个包。当你给一个项目添加一个 require 依赖时, 此时你正在创建一个依赖于其他包的包。 项目和扩展包唯一不同之处在于,项目是一个没有名称的包。 为了使该包可安装,你需要指定一个名称, 通过在 composer.json 中添加 name 属性: { "name": "acme/hello-wo

  • 问题内容: 我在掌握某些内容时遇到了一些问题-我可能正在处理完全错误的问题。 我正在尝试创建一个扩展ArrayList的类,但是具有一些增加功能的方法(至少对于我正在开发的程序而言)。 方法之一是findById(intid),它在每个ArrayList对象中搜索特定的id匹配项。到目前为止,它仍然有效,但它不会让我做for (Item i : this) { i.getId(); } 我不明白为

  • 我可以运行我的项目,并且没有错误地运行它。但当我运行测试时,它不能。 我看到文档,一步一步地。 我不知道我在哪里犯了错误。 配置: 测试文件 错误消息:

  • 我使用poi-jar创建.xlsx文件,poi-3.15.jar,poi-ooxml-