Gradle 为使用 spring-boot 的 assemble 创建的 jar 设置名称
Gradle set name for jar created with spring-boot's assemble
我想用 gradle (kotlin-dsl) 创建一个可执行 jar,我想给它一个自定义名称。对于可执行 jar,我使用 spring 引导插件和 ./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,但我不知道如何设置它的名称。
处理命名 jar,但我不知道如何应用任何答案来解决我的问题。
将 jar
块添加到我的 gradle 文件不起作用: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。
assemble
是一个生命周期任务,这意味着它不会创建任何东西。它的作用是触发它所依赖的并且确实有一些输出的其他任务。您可以通过 运行 使用 --console=plain
.
构建来查看这些任务
creates the Spring Boot fat jar is named bootJar
. As you can see from its javadoc的任务,它是Gradle的Jar
的自定义,可以用同样的方式配置:
tasks.bootJar {
archiveBaseName.set("myapp")
archiveVersion.set("version")
}
我想用 gradle (kotlin-dsl) 创建一个可执行 jar,我想给它一个自定义名称。对于可执行 jar,我使用 spring 引导插件和 ./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,但我不知道如何设置它的名称。
将 jar
块添加到我的 gradle 文件不起作用: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。
assemble
是一个生命周期任务,这意味着它不会创建任何东西。它的作用是触发它所依赖的并且确实有一些输出的其他任务。您可以通过 运行 使用 --console=plain
.
creates the Spring Boot fat jar is named bootJar
. As you can see from its javadoc的任务,它是Gradle的Jar
的自定义,可以用同样的方式配置:
tasks.bootJar {
archiveBaseName.set("myapp")
archiveVersion.set("version")
}