【发布时间】:2021-06-11 13:44:19
【问题描述】:
我想用 gradle (kotlin-dsl) 创建一个可执行的 jar,我想给它一个自定义名称。对于可执行 jar,我使用的是 spring boot 插件和./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 又创建了两个文件,buildSrc/build.gradle.kts:
plugins {
`kotlin-dsl`
}
repositories {
gradlePluginPortal()
mavenCentral()
}
和buildSrc/src/main/kotlin/myproject.java-application-conventions.gradle.kts:
plugins {
id("lomboker.java-common-conventions")
application
}
使用./gradlew :app1:assemble 我可以创建一个可执行的 jar,但我不知道如何设置它的名称。
This question 处理命名 jar,但我不知道如何对我的问题应用任何答案。
向我的 gradle 文件添加 jar 块不起作用:Expression 'jar' cannot be invoked as a function. 它被解释为 sun.tools.jar.resources.jar。所以我改用tasks.jar。
对于
tasks.jar {
archiveBaseName.set("myapp")
archiveVersion.set("version")
}
./gradlew :app1:jar 构建成功时不会创建 jar(无论如何它都无法执行),./gradlew :app1:assemble 会忽略属性并仅创建 ./app1/build/libs/app1.jar。
由于我没有使用jar,而是assemble,我想我应该使用tasks.assemble 块。但这不能识别archiveBaseName 或archiveVersion,我也不知道API 是什么。
这是页面:https://plugins.gradle.org/plugin/org.springframework.boot,但我没有找到 API。
【问题讨论】:
标签: java spring-boot gradle jar gradle-kotlin-dsl