I want to create an executable jar with gradle (kotlin-dsl) and I want to give it a custom name. For the executable jar I'm using the spring boot plugin and ./gradlew :app1:assemble
:
plugins {
id("myproject.java-application-conventions")
id("org.springframework.boot") version "2.2.2.RELEASE"
}
dependencies {
implementation(project(":lib"))
}
application {
mainClass.set("org.myproject.app.Main")
}
init
created two more files, buildSrc/build.gradle.kts
:
plugins {
`kotlin-dsl`
}
repositories {
gradlePluginPortal()
mavenCentral()
}
and buildSrc/src/main/kotlin/myproject.java-application-conventions.gradle.kts
:
plugins {
id("lomboker.java-common-conventions")
application
}
With ./gradlew :app1:assemble
I can create an executable jar but I don't see how I can set its name.
This question deals with naming jars but I don't know how to apply any answers to my problem.
Adding a jar
block to my gradle file does not work: Expression 'jar' cannot be invoked as a function.
it is interpreted as sun.tools.jar.resources.jar
. So I try tasks.jar
instead.
For
tasks.jar {
archiveBaseName.set("myapp")
archiveVersion.set("version")
}
./gradlew :app1:jar
while building successful creates no jar (it wouldn't be executable anyway) and ./gradlew :app1:assemble
ignores the properties and just creates ./app1/build/libs/app1.jar
.
Since I'm not using jar
but assemble
I guess I should use a tasks.assemble
block. But that doesn't recognize archiveBaseName
or archiveVersion
and I don't know what the API is.
This is the page: https://plugins.gradle.org/plugin/org.springframework.boot but I find no API.