Construindo um uberjar com Gradle

Eu sou um novato Gradle. Eu quero construir um uberjar (AKA fatjar) que inclui todas as dependências transitivas do projeto. Quais linhas eu preciso adicionar ao meu "build.gradle"?

Isto é o que eu tenho atualmente: (eu copiei de algum lugar alguns dias atrás, mas não me lembro de onde.)

task uberjar(type: Jar) {
    from files(sourceSets.main.output.classesDir)

    manifest {
        attributes 'Implementation-Title': 'Foobar',
                'Implementation-Version': version,
                'Built-By': System.getProperty('user.name'),
                'Built-Date': new Date(),
                'Built-JDK': System.getProperty('java.version'),
                'Main-Class': mainClassName
    }
}

questionAnswers(4)

yourAnswerToTheQuestion