在gradle中创建一个shadow jar?

PGM*_*ter 2 java gradle maven

tasks.register('uberJar', Jar) {
    archiveClassifier = 'Uber'

    manifest {
        attributes["Main-Class"] = mainClassName
    }

    from sourceSets.main.output

    dependsOn configurations.runtimeClasspath
    from {
        configurations.runtimeClasspath.findAll { it.name.endsWith('jar') }.collect { zipTree(it) }
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用...我正在尝试制作一个具有多个依赖项的 uber jar,One-Jar 似乎已经过时,并且我无法使用默认的 gradle uberJar 构建器或影子 jar。

mad*_*ead 5

不要重新发明轮子并使用插件来实现这一点。在最简单的情况下(这可能适用于您的情况),这只是一个问题:

plugins {
  id 'com.github.johnrengelman.shadow' version '7.1.2'
}
Run Code Online (Sandbox Code Playgroud)

进而:

plugins {
  id 'com.github.johnrengelman.shadow' version '7.1.2'
}
Run Code Online (Sandbox Code Playgroud)