使用 Gradle 脚本在常规罐和胖罐之间切换

Switching between regular and fat jars with Gradle script

我有一个使用 gradle 的小型 java 项目,我希望能够在生成常规 jar 和胖 jar 之间进行选择。

plugins {
    id 'java-library'
}

repositories {
    mavenCentral()
}

jar {
    manifest {
        attributes(
            'Main-Class': 'com.myTest'
        )
    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

dependencies {
    implementation('org.apache.commons:commons-lang3:3.0')
    testImplementation 'junit:junit:4.12'
}

如果我用上面的脚本来构建,我会得到一个fat jar。为了让我得到一个罐子,我需要删除 "jar" 块。我需要做什么才能从命令行在两者之间切换? 非常感谢!

为 fatJar 任务创建新任务,如下所示,

task fatJar(type: org.gradle.jvm.tasks.Jar, group: "build") {

manifest {
    attributes(
        'Main-Class': 'com.myTest'
    )
}
baseName(project.name.concat("-fatJar"))
from {
    configurations.runtimeClasspath.collect { it.directory ? it : zipTree(it) 
 }
}

参考:https://www.baeldung.com/gradle-fat-jar