首页 > 解决方案 > 将 Spring Boot jar 名称传递给 Gradle Groovy 脚本

问题描述

我有一个在生成 SpringBoot jar 文件后运行的 gradle 脚本:

task runScript (dependsOn: 'bootJar', type: JavaExec) {
    main = 'postpackage'
    classpath = sourceSets.main.runtimeClasspath
}

到目前为止,gradle 脚本只打印了一条消息:

println "hello world from groovy version ${GroovySystem.version}"

这在我的构建中运行良好。

gradle runScript

任务 :runScript hello world 从 groovy 版本 2.4.15

我想要的是这样的:

println "hello world generated jar file name is ${jarFileName}"

我想要做的是传入 SpringBoot 生成的 jar 名称,或其中的 jar 名称或其他名称build/libs/my-service-0.1.1.jar

所以它会打印:

hello world 生成的 jar 文件名为 my-service-0.1.1.jar

我怎样才能做到这一点?

这是我尝试过的:

postpackage.groovy:

println "hello world from groovy version ${GroovySystem.version}"

println "hello world from groovy version $bootJar.archiveName"

构建.gradle:

task runScript (dependsOn: 'bootJar', type: JavaExec) {
    main = 'postpackage'
    classpath = sourceSets.main.runtimeClasspath
}

这是错误:

任务:runScript FAILED hello world from groovy 版本 2.4.15 线程“主”groovy.lang.MissingPropertyException 中的异常:没有此类属性:类的 bootJar:org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap 的 postpackage(ScriptBytecodeAdapter.java: 66)

标签: javagradlegroovy

解决方案


您应该能够将 bootjar 引用为“jar”。

您的打印语句示例:

println "hello world from groovy version ${jar.archiveName}"

推荐阅读