How do I create an executable fat jar with Gradle with implementation dependencies

前端 未结 5 602
广开言路
广开言路 2020-12-01 09:02

I\'ve got a simple project in Gradle 4.6 and would like to make an executable jar of it. I\'ve tried shadow, gradle-fatjar-plugin, gradle-one

5条回答
  •  忘掉有多难
    2020-12-01 09:42

    Kotlin 1.3.72 & JVM plugin, Gradle 6.5.1

    Syntax is changing quickly in all these platforms

    tasks {
        compileKotlin {
            kotlinOptions.jvmTarget = "1.8"
        }
        compileTestKotlin {
            kotlinOptions.jvmTarget = "1.8"
        }
        val main = sourceSets.main.get()
        //TODO
        register("buildFatJar") {
            group = "app-backend"
            dependsOn(build)
            // shouldRunAfter(parent!!.tasks["prepCopyJsBundleToKtor"]) -> This is for incorporating KotlinJS gradle subproject resulting js file.
            manifest {
                attributes["Main-Class"] = "com.app.app.BackendAppKt"
            }
    
            from(configurations.compileClasspath.get().files.map { if (it.isDirectory) it else zipTree(it) })
            with(jar.get() as CopySpec)
            archiveBaseName.set("${project.name}-fat")
        }
    }
    

提交回复
热议问题