Gradle:shadowJar忽略了依赖项

Gradle:shadowJar忽略了依赖项,gradle,shadowjar,gradle-shadow-plugin,Gradle,Shadowjar,Gradle Shadow Plugin,当尝试创建胖jar时,shadowJar忽略了很多依赖项。我从一个正在工作的pom.xml创建了一个build.gradle文件。Maven构建了一个没有问题的胖罐子。通过阅读Gradle关于构建胖jar的信息,shadowJar插件似乎是推荐的方法。但是,我的Gradle fat jar出现以下运行时错误: Jul 19, 2018 2:35:10 PM restclients.RestStatus2Streams writeToStream SEVERE: Error occurred wh

当尝试创建胖jar时,shadowJar忽略了很多依赖项。我从一个正在工作的pom.xml创建了一个build.gradle文件。Maven构建了一个没有问题的胖罐子。通过阅读Gradle关于构建胖jar的信息,shadowJar插件似乎是推荐的方法。但是,我的Gradle fat jar出现以下运行时错误:

Jul 19, 2018 2:35:10 PM restclients.RestStatus2Streams writeToStream
SEVERE: Error occurred while instantiating com.me.streams.impl.producer.MarlinProducerV10.
==> java.lang.NoClassDefFoundError: org/apache/hadoop/fs/PathId.
很明显,我的远罐漏掉了什么。果然,org/apache/hadoop/fs/PathId和依赖项的整个目录都丢失了。尽管pom.xml没有显式地包含“org.apache.hadoop:hadoop common”依赖项,但我将该工件作为依赖项显式地添加到build.gradle文件中,仍然没有任何乐趣

要回答几个问题:

  • hadoop是存储库中的公共工件吗?对
  • 工件的命名版本是否在存储库中?对
  • 类PathId是存储库中的工件吗?工件的“jarxf”表示“是”
由于Maven fat jar工作得很好,并且取消Maven fat jar的连接会显示PathId类(以及Gradle fat jar中缺少的其他类),因此我的build.Gradle文件和/或shadowJar插件和/或Gradle有问题

build.gradle文件:

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'com.github.johnrengelman.shadow'

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

sourceCompatibility = 1.8
targetCompatibility = 1.8

defaultTasks 'shadowJar'

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.3'
    }
}

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'

}

shadowJar {
    zip64     true
    baseName 'me-edge'
}
我的build.gradle文件做错了什么

  • 格拉德尔4.9
  • 操作系统:Linux 3.10.0-514.el7.x86_64 amd64
  • JVM:1.8.0_151(Oracle公司25.151-b12)