简体   繁体   English

在 gradle 中创建影子 jar?

[英]Creating a shadow jar in gradle?

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) }
    }
}

This doesn't seem to be working... I'm trying to make an uber jar with multiple dependencies, One-Jar seems to be outdated, and I can't use either the default gradle uberJar builder or shadow jar.这似乎不起作用...我正在尝试制作具有多个依赖项的 uber jar,One-Jar 似乎已过时,并且我不能使用默认的 gradle uberJar builder 或 shadow Z68994Z8432492DAC45

Don't reinvent the wheel and use the plugin for that.不要重新发明轮子并为此使用插件 In the most simple scenario (which would probably work in your case), it's just a matter of:在最简单的情况下(这可能适用于您的情况),这只是一个问题:

plugins {
  id 'com.github.johnrengelman.shadow' version '7.1.2'
}

And then:接着:

./gradlew shadowJar

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM