Home > database >  `gradlew jar` is not producing a jar
`gradlew jar` is not producing a jar

Time:12-07

I'm building a Java command line application using gradle and have it running when I use gradlew run, however I would like to generate a jar -- which I would assume I would then have users download to invoke the CLI.

However, when I run gradlew jar, nothing is produced (build/lib dir doesn't even exist) even though the build runs with no errors and finishes with BUILD_SUCCESSFUL.

Two questions:

  1. Why is no jar being produced?
  2. Is having users download a jar the best way to ship a CLI for Java?

Below is my full build.gradle.kts

plugins {
    // Apply the application plugin to add support for building a CLI application in Java.
    application
    id("com.diffplug.spotless") version "6.12.0"
}

repositories {
    // Use Maven Central for resolving dependencies.
    mavenCentral()
}

dependencies {
    // Use JUnit test framework.
    testImplementation("junit:junit:4.13.2")

    // This dependency is used by the application.
    implementation("com.google.guava:guava:30.1-jre")

    implementation("info.picocli:picocli:4.7.0")
    annotationProcessor("info.picocli:picocli-codegen:4.7.0")

    implementation("io.vavr:vavr:0.10.4")

}

application {
    // Define the main class for the application.
    mainClass.set("testlauncher.command.Runner")
}

subprojects {
    apply {
        plugin("com.diffplug.spotless")
    }
}

spotless {
    java {
        importOrder()
        removeUnusedImports()
        googleJavaFormat()
    }
}

project.tasks.findByName("build")?.dependsOn(project.tasks.findByName("spotlessApply"))

CodePudding user response:

I'm dumb.

I thought the jar would be in ./build/libs but it's actually in ./app/build/libs.

  • Related